如何使用My Sql获取财务年度数据

时间:2019-02-04 10:09:14

标签: mysql sql

我有一个查询,该查询根据当前年份为我提供结果,但它需要从JanuaryDecember的年份:我希望它是从1st of april到{明年{1}}

我该如何实现?

我的查询:

31 of march

2 个答案:

答案 0 :(得分:1)

您需要同时调整billdate CURDATE()的9个月以比较其财务年度(FY19从2018-04-012019-03-31) 。请注意,我们可以使用MtdAmount简化DATE_FORMAT比较。此查询应该可以工作:

SELECT
    ROUND(SUM(CASE WHEN DATE_FORMAT(CURDATE(), '%Y%m') = DATE_FORMAT(billdate, '%Y%m') THEN netamount ELSE 0 END)) AS MtdAmount,
    ROUND(SUM(CASE WHEN YEAR(CURDATE() + INTERVAL 9 MONTH) = YEAR(billdate + INTERVAL 9 MONTH) THEN netamount ELSE 0 END)) AS YtdAmount 
FROM syncbill
WHERE cancelled<>'Y' 

答案 1 :(得分:0)

减去三个月并使用日历年。我想您想要这样的东西:

select round(sum(case when year(billdate - interval 3 month) = year(curdate()) and
                           month(curdate()) = month(billdate)
                      then netamount
                      else 0 
                 end)
            ) as MtdAmount,
       round(sum(case when year(curdate()) = year(billdate - interval 3 month)
                      then netamount
                      else 0
                 end)
            ) as YtdAmount 
from syncbill
where cancelled <> 'Y';

我不认为distinct在做什么。但是,如果是这样,则可以将其重新添加或添加适当的group by键。