将日期范围拆分为不同的会计年度
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
我有一个数据集:
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