0
我需要幫助編寫一個T-SQL查詢,該查詢將從每張特許經營的52周序列中經常包含空白的表中生成52行數據(即,特許經營可能每兩週報告一次數據,或者全年沒有營業)。需要幫助寫一個日期敏感的T-SQL查詢
我對查詢的表格看起來是這樣的:
FranchiseId | Date | ContractHours | PrivateHours
,我需要把它加入到類似這樣的表:
FranchiseId | Name
輸出的查詢需要如下所示:
Name | Date | ContractHours | PrivateHours
---- ---------- ------------- ------------
AZ1 08-02-2011 292 897
AZ1 07-26-2011 0 0 -- default to 0's for gaps in sequence
...
AZ1 08-03-2010 45 125 -- row 52 for AZ1
AZ2 08-02-2011 382 239
...
AZ2 07-26-2011 0 0 -- row 52 for AZ2
對於每一個特許經營商,我都需要這種風格的輸出,即在單一結果集中,對於52周的序列中的任何缺口,具有缺省行的52行數據。因此,如果有100個專營權,結果集應該是5200行。
我已經試過
我試過的典型建議:
- 與所有可能的日期創建一個表
- LEFT OUTER JOIN這個數據所需要的表
我遇到的問題是1)確保每個特許經營店都有52行 2)與特許經營名稱和差距0小時填充,我不能在結果集中如下:
Name | Date | ContractHours | PrivateHours
---- ---------- ------------- ------------
NULL 08-02-2011 NULL NULL
我不知道從哪裏走?有沒有一種有效的方法來編寫能產生所需輸出的T-SQL查詢?
+1 - 擊敗我'CROSS JOIN'。 – JNK
@gbn謝謝!這真的幫了我很大的忙,我能夠生成我正在尋找的結果集。 – sellmeadog