Microsoft SQL Server中存在一個表,其中包含記錄標識,開始日期,結束日期和數量。針對日期範圍的SQL查詢,多個開始/結束時間
這個想法是,對於每個記錄,範圍內的數量/總天數=每日數量。
鑑於包含所有可能日期的表存在,我如何在SQL Server中生成結果集,使其看起來像下面的示例一樣?
EX:
RecordID | Start Date | End Date | Quantity
1 | 1/1/2010 | 1/5/2010 | 30000
2 | 1/3/2010 | 1/9/2010 | 20000
3 | 1/1/2010 | 1/7/2010 | 10000
Results as
1 | 1/1/2010 | QTY (I can do the math easy, just need the dates view)
1 | 1/2/2010 |
1 | 1/3/2010 |
1 | 1/4/2010 |
1 | 1/3/2010 |
2 | 1/4/2010 |
2 | 1/5/2010 |
2 | 1/6/2010 |
2 | 1/7/2010 |
2 | 1/8/2010 |
2 | 1/9/2010 |
3 | 1/1/2010 |
3 | 1/2/2010 |
3 | 1/3/2010 |
3 | 1/4/2010 |
3 | 1/5/2010 |
3 | 1/6/2010 |
3 | 1/7/2010 |
分組的日期,我能得到那麼得到的那一天量的總和不過最終的結果集不能總因爲這可能會排除某些記錄用戶提供過濾器在路上。
EDIT
爲了澄清,這僅僅是一個示例。過濾器是無關緊要的,因爲我可以加入到側面來獲取結果中與記錄ID相關的詳細信息。
真實數據包含每週增加的N個記錄,日期從不相同。可能有2000條記錄具有不同的開始日期和結束日期......這是我想爲其生成視圖。我可以正確加入數據,以完成我需要的其餘部分。
我還應該提到這是針對過去,現在和將來的數據。我很想擺脫一個臨時的日期表。我使用遞歸查詢來獲取50年內存在的所有日期,但這超出了MAXRECURSION對於視圖的限制,我無法使用。
我不知道我的理解對用戶提供的濾光器的信息。你能提供更多細節嗎? – bobs 2010-07-20 21:50:39
這些過濾器真的無關緊要。我會把這個列表加入到主列表中,其中包含關於數量等的信息,並可以使用這些事實來推導出所有的值。 – Mohgeroth 2010-07-20 23:09:38