我有一个查询,该查询根据当前年份为我提供结果,但它需要从January
到December
的年份:我希望它是从1st of april
到{明年{1}}
我该如何实现?
我的查询:
31 of march
答案 0 :(得分:1)
您需要同时调整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'
答案 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
键。