将日期范围拆分为不同的会计年度

Splitting a date range into different fiscal years

我有一个数据集:

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 table 来尝试以下操作。如果数量开始日期和结束日期跨越两个以上会计年度,逻辑就会中断。

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