2010-09-22 130 views
0

我有一張表,其中包含每個員工多個記錄的有效數據和有效序列: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比較第二子選擇?

+2

您似乎在尋找參數化視圖。這就是所謂的表值函數。 – 2010-09-22 20:09:50

+0

是否有你想要視圖而不是存儲過程或@table函數的原因? – JNK 2010-09-22 20:10:06

+0

是的。我可以創建sp和/或函數,但我的挑戰是使用這些信息創建基於Excel的報表。當我嘗試在我的Excel報告中包含子查詢時,他們的GUI不能再用於編輯(參數,修改等)。我試圖創建一個視圖(或其他方法)來解決它。 – Jason 2010-09-22 20:18:03

回答

0

您不能參數化視圖,但可以保持原樣併爲參數化sp返回由參數限制的視圖結果,並將sp的輸出發送到表並在Excel中使用該表。

+0

反正有用戶通過Excel(或其他一些用戶友好的方式)執行sp嗎? – Jason 2010-09-22 21:40:40

+1

我認爲你需要的不僅僅是Excel。也許一個Access前端? – Beth 2010-09-22 22:02:55