我有一個涉及計算6個月期間收入的查詢。難點在於開始和結束日期可能是一個月中的任何一天。例如,我可能有一個表是這樣的:SQL Server簡化涉及重複日期計算的長查詢
MyTable
Year Month Income
2011 01 38.9
2011 02 30.5
2011 03 55.2
2011 04 28.3
2011 05 33.6
2011 06 36.3
2011 07 41.8
2011 08 43.7
...
比方說,我知道起始日期是2011-02-09
。然後結束日期爲2011-08-09
6個月。爲計算此期間的收入,我必須在2011年2月和8月分別使用開始日期和結束日期分攤這些數字。這使得我的查詢看起來像這樣:
請注意,我從另一個表中獲取具有連接的起始日期。
在我的實際問題中,我有更多的分支比這個例子顯示。正如你所看到的,它會變得非常冗長和麻煩。所以我的問題是,SQL中有沒有一種方法可以簡化這種代碼以使其可讀性以避免潛在的錯誤?
我做過關於用戶定義函數的研究,但無法想出簡單而乾淨的方法來簡化它。
您是否有另一張表格包含按天收入,而不是按月彙總的表格? –
@Tab Alleman,不,這就是爲什麼我要分配。 – breezymri