我有一个涉及计算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