我正在爲數據庫中的兩個日期表編寫查詢。有一個dbo.days(日曆)表和一個dbo.holidays表。使用日曆表填寫另一個日期範圍內的所有日期
我需要的所有獨特的天是節假日一個簡單的列表,所以我的查詢的輸出應該是這樣的:現在
01-01-2014
01-02-2014
18-04-2014
20-04-2014
26-04-2014
27-04-2014
,壓延表有所有的日期,但作爲第二列僅列出它是否是一個工作日
而且假期表看起來有點像這樣(週末和節假日沒有區別):
Description DateFrom DateTo
Holiday description 01-01-2014 01-02-2014
Holiday description 18-04-2014 18-04-2014
Holiday description 20-04-2014 21-04-2014
Holiday description 26-04-2014 26-04-2014
由於這TABL e允許日期範圍,打開一堆蠕蟲。我不能只選擇所有DateFrom天。實際上,沒有假期(荷蘭在這裏)持續兩天以上,所以只要選擇所有的DateFroms並添加幾個DateTo日期就可以得到我想要的列表。但是如果有人想要有一個月的新年假期,我想看01/01,02/01,03/01,04/01等。 下面的查詢檢索日期,但並不是'我似乎按照我設想的方式工作。通過SO,我發現this article,最後列出的查詢在某種程度上適用於我的情況。我無法在我的情況下工作。
也許這是一個初學者的錯誤,但我希望有人能夠幫助我。
Select convert(varchar,d.Date, 105) from dbo.Days d
LEFT OUTER JOIN dbo.Holidays H on d.Date = h.DateFrom
where d.Date >= h.DateFrom or d.Date <= h.DateTo
你可能會用一個假期場最好在您的日曆表中的內容。另外,如果你想要一個假期表,只需要兩個字段,日期和假期。如果任何事情持續超過一天,請輸入多個記錄。 –