Sql 将日期范围拆分为不同的会计年度
我有一个数据集:Sql 将日期范围拆分为不同的会计年度,sql,db2,date-range,Sql,Db2,Date Range,我有一个数据集: Quantity Start date End date 1 2012-03-28 2012-05-30 7 2012-08-15 2012-12-15 我想使用会计年度对其数量进行汇总和分组,会计年度从每年4月1日开始,到明年3月31日结束。即 Fiscal Year Quantity 2012
Quantity Start date End date
1 2012-03-28 2012-05-30
7 2012-08-15 2012-12-15
我想使用会计年度对其数量进行汇总和分组,会计年度从每年4月1日开始,到明年3月31日结束。即
Fiscal Year Quantity
2012 3000
2013 1788
我试图创建一个属性“会计年度”,但遇到了日期范围可能介于2个会计年度之间的问题。(原始数据集的第一行,例如,我们需要两次计算数量,一次在2011年,另一次在2012年。)
我可以知道有没有办法进行这样的操作吗
谢谢大家! 您可以通过创建财务报表来尝试以下操作。如果数量开始日期和结束日期跨越两个以上会计年度,则逻辑中断
fiscalYear(Year, StartDate, EndDate)
insert fiscalYear values
(2011, "2011-04-01", "2012-03-31"),
(2012, "2012-04-01", "2013-03-31"),
(2013. "2013-04-01", "2014-03-31")
select t1.Year, sum(t2.Quantity)
from fiscalYear t1
inner join myTable t2 on (convert(datetime, t2.StartDate) >= convert(datetime, t1.StartDate)
and convert(datetime, t2.StartDate) <= convert(datetime, t1.EndDate) )
or
(convert(datetime, t2.EndDate) >= convert(datetime, t1.StartDate)
and convert(datetime, t2.EndDate) <= convert(datetime, t1.EndDate) )
group by t1.Year
财政年度(年、开始日期、结束日期)
插入财政年度值
(2011, "2011-04-01", "2012-03-31"),
(2012, "2012-04-01", "2013-03-31"),
(2013. "2013-04-01", "2014-03-31")
选择t1.年、和(t2.数量)
从财政部t1
内部联接myTable t2 on(convert(datetime,t2.StartDate)>=convert(datetime,t1.StartDate)
and convert(datetime,t2.StartDate)=convert(datetime,t1.StartDate)
和convert(datetime,t2.EndDate)您可以单独使用基表,而不需要下面的fiscalYear
这样的附加表。您需要这样的解决方案吗?