2017-03-31 36 views
0

我有一個日期表,我用它來確定一年的一週(我們的年份不是基於現在的日曆年)。我有一個聯合查詢來創建一個表,我將在表值函數中使用它。我可以在聯合查詢中創建表,但它只會生成具有實際數據的40周。無論數據是否存在,我都需要它顯示周。
我已經嘗試在周表上留下外連接,但我仍然只獲得一週中有數據關聯的記錄。即使沒有值也會連接到表的所有行sql server

left outer join [dbo].[LOOKUP_WEEK_NUMBER] w on 
(p.[Program_Year_ID] = w.[Program_Year_Nbr]) and 
(p.[Installation_Complete_Date] between w.[Week_Start] and w.[Week_End]) 

LOOKUP_WEEK_NUMBER表包含一年中的所有星期以及每週的開始和結束日期。 p表包含項目數據。我正在做的是將這些項目分成幾周進行報告。
任何人都可以指向正確的方向嗎?提前致謝。

+0

添加一些示例表格數據和預期結果 - 所有以及格式化文本。 – jarlh

+0

嘗試使用'RIGHT JOIN'來代替。 – Siyual

回答

0

從查找表而不是您的查找表更改爲left join,或將right join用於查找表。

from [dbo].[LOOKUP_WEEK_NUMBER] w 
    left join ... p 
    on (p.[Program_Year_ID] = w.[Program_Year_Nbr]) 
    and (p.[Installation_Complete_Date] between w.[Week_Start] and w.[Week_End]) 
相關問題