mysql - 如何使用Mysql获取财政年度数据

标签 mysql sql

我有一个查询,它根据当前年份给出结果,但年份是从一月十二月:我希望它是从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-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' 

关于mysql - 如何使用Mysql获取财政年度数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54513891/

相关文章:

php - 即使 id 匹配,SQL INNER JOIN 也仅从第二个表中选择最后一行

mysql - Perl 和 DBD::mysql 无法加载 mysql.so...也许所需的共享库或 dll 没有安装在预期的位置

sql - 更新存在的地方

mysql - FIND_IN_SET 具有多个值

php - SQL 语法错误 IN

c# - 从空表 SQL 中获取最新的身份,例如 ID

php - 从PHP将包括毫秒的日期时间值插入mysql数据库

mysql - 无法使用 InnoDB 在字段上添加索引?

php - Mercurial 更新之间的数据库同步

sql - 处理第一条记录的子查询的最有效方法