Как получить данные финансового года, используя My Sql - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть запрос, который дает мне результат на основе текущего года, но он принимает год от January до December: я хочу, чтобы он был от 1st of april до 31 of march следующего года

Как мне этого добиться?

Мой запрос:

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' 

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

Вам необходимо отрегулировать как billdate , так и CURDATE() на 9 месяцев, чтобы сравнить их финансовые годы (в ФГ 19 от 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' 
0 голосов
/ 04 февраля 2019

Вычтите три месяца и используйте календарный год.Я думаю, вы хотите что-то вроде этого:

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 ключи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...