我有以下的架構,我已經略微簡化:SQL返回缺少的行
CREATE TABLE [dbo].[Header] (
[HeaderId] [int] IDENTITY(1,1) NOT NULL,
[StaffId] [int] NOT NULL,
[WeekEnding] [smalldatetime] NOT NULL,
...
)
CREATE TABLE [dbo].[Staff] (
[StaffId] [int] NOT NULL,
[FirstWeekEnding] [smalldatetime] NULL,
...
)
,STAFFID頁眉表的外鍵。
標題表跟蹤與員工相關的數據(在未顯示的子表中),並且對於給定的星期,如果子表中的數據存在,則將存在用於「週末」的條目。在這種情況下,「週末」總是一個星期天。因此,樣本數據看起來是這樣的:
HeaderId StaffId WeekEnding
---------------------------------
1 1 13/02/2011
2 1 20/02/2011
etc...
對員工表中的「FirstWeekEnding」值是他們開始在Header表跟蹤信息的第一次約會。
我的問題
考慮的第一個星期結束的每一個工作人員的日期,我該如何構造查詢,這將使我從報頭表中的所有缺失的記錄到現在的日期?
例如,給出以下數據:
StaffId FirstWeekEnding
---------------------------
1 02/01/2011
HeaderId StaffId WeekEnding
---------------------------------
1 1 02/01/2011
2 1 09/01/2011
3 1 16/01/2011
4 1 13/02/2011
5 1 20/02/2011
其結果將是:
StaffId WeekEnding
---------------------
1 23/01/2011
1 30/01/2011
1 06/02/2011
理想情況下,查詢應該處理多個工作人員,由他們進行分組STAFFID。
請郵寄到現在爲止您編寫的代碼。人們通常不喜歡只爲你寫代碼。事實上,這是一個工作描述,而不是一個問題。 – 2011-02-23 00:09:22
@Mitch:這是一個有效的IMO問題。 – mellamokb 2011-02-23 00:12:46
@mellamokb:沒有任何海報試圖解決問題的證據,它只是一個工作描述。 – 2011-02-23 00:15:41