我的财政年度介于7月1日至6月30日之间,例如2018-07-01至2019-06-30
我有以下数据。
我想在SQL中按财务年度汇总费率列 请帮忙。
答案 0 :(得分:1)
您可以通过减去或增加六个月来获得财政年度。
在ANSI / ISO标准SQL中,如下所示:
select extract(year from fromDate + interval '6 month') as fiscal_year
sum(rate)
from t
group by extract(year from fromDate + interval '6 month');
这使用标准SQL-具有讽刺意味的是,它不适用于大多数数据库。日期函数众所周知是特定于数据库的,因此确切的代码可能在您的数据库中有所不同(在我撰写本文时未指定)。
答案 1 :(得分:0)
If I correctly understood what you're looking for, this should work for you.
SELECT
SUM(Rate) as Rate,
CASE WHEN MONTH(FromDate) < 7 THEN YEAR(FromDate) - 1 ELSE YEAR(FromDate) END AS Fiscal_Year
FROM #t
GROUP BY CASE WHEN MONTH(FromDate) < 7 THEN YEAR(FromDate) - 1 ELSE YEAR(FromDate) END
答案 2 :(得分:0)
对于任何给定日期,您都可以像这样计算会计年度的最后日期:
SELECT EOMONTH(date, (18 - MONTH(date)) % 12)
| date | FY_END |
|------------|------------|
| 2017-06-11 | 2017-06-30 |
| 2017-07-15 | 2018-06-30 |
| 2018-06-13 | 2018-06-30 |
| 2018-07-17 | 2019-06-30 |
| 2019-06-11 | 2019-06-30 |
| 2019-07-15 | 2020-06-30 |
您只需按此日期分组即可获取每个财政年度的数据。