Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将日期范围拆分为不同的会计年度_Sql_Db2_Date Range - Fatal编程技术网

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
这样的附加表。您需要这样的解决方案吗?