我有一个查询,它根据当前年份给出结果,但年份是从一月
到十二月
:我希望它是从4 月 1 日
至明年 3 月 31 日
我怎样才能实现这一目标?
我的查询:
select
distinct round(sum(case when year(curdate())=year(billdate) and month(curdate())=month(billdate) then netamount else 0 end)) as MtdAmount,
round(sum(case when year(curdate())=year(billdate) then netamount else 0 end)) as YtdAmount
from syncbill where cancelled<>'Y'
最佳答案
您需要调整 billdate
和 CURDATE()
向前推进 9 个月来比较他们的财政年度(FY19 从 2018-04-01
到 2019-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'
关于mysql - 如何使用Mysql获取财政年度数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54513891/