我有一張表,其中包含每個員工多個記錄的有效數據和有效序列:EMPLID,EFFDT,EFFSEQ。SQL Server 2005 Views
我試圖想出一個視圖,在該視圖中我可以指定除當前日期以外的日期,並獲得該日期之前每個員工的最新記錄。我平時使用的查詢是:
SELECT C.EMPLID, C.EFFDT, C.EFFSEQ
FROM PS_JOB C
WHERE C.EFFSEQ = (SELECT MAX(INNERALIAS.EFFSEQ)
FROM PS_JOB INNERALIAS
WHERE INNERALIAS.EMPLID = C.EMPLID
AND INNERALIAS.EFFDT = C.EFFDT)
AND C.EFFDT = (SELECT MAX(INNERALIAS.EFFDT)
FROM PS_JOB INNERALIAS
WHERE INNERALIAS.EMPLID = C.EMPLID
AND INNERALIAS.EFFDT <= GetDate())
有什麼辦法來SQL Server上創建一個視圖中,我可以指定一個日期爲INNERALIAS.EFFDT
比較第二子選擇?
您似乎在尋找參數化視圖。這就是所謂的表值函數。 – 2010-09-22 20:09:50
是否有你想要視圖而不是存儲過程或@table函數的原因? – JNK 2010-09-22 20:10:06
是的。我可以創建sp和/或函數,但我的挑戰是使用這些信息創建基於Excel的報表。當我嘗試在我的Excel報告中包含子查詢時,他們的GUI不能再用於編輯(參數,修改等)。我試圖創建一個視圖(或其他方法)來解決它。 – Jason 2010-09-22 20:18:03