SQL-запрос для получения данных финансового года, сгруппированных годом

У меня есть база данных с, позволяет, принимают два столбца (service_date и invoice_amount). Я хотел бы создать SQL-запрос, который получит и сгруппирует данные в течение каждого финансового года (С июля по июнь).

У меня есть два года данных так, чтобы были два финансовых года (т.е. 2 результата).

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

Все приветствующиеся идеи.

Спасибо

5
задан mlevit 7 April 2010 в 10:17
поделиться

2 ответа

SELECT
   CASE WHEN MONTH(service_date)>=7 THEN
          concat(YEAR(service_date), '-',YEAR(service_date)+1)
   ELSE concat(YEAR(service_date)-1,'-', YEAR(service_date)) END AS financial_year,
   SUM(invoice_amount)
FROM mytable
GROUP BY financial_year

, которые производят o / p, как показано ниже

financial_year   invoice_amount
2007-2008        10000.00
2008-2009        15000.00
2009-2010        20000.00
20
ответ дан 18 December 2019 в 07:28
поделиться

Это работает для меня в MSSQL .. Надеюсь, это сработает для вас в MySQL

SELECT
   CASE WHEN MONTH(service_date)>=7 THEN
           YEAR(service_date)+1 
   ELSE YEAR(service_date) END AS financial_year,
   SUM(invoice_amount)
FROM mytable
GROUP BY
   CASE WHEN MONTH(service_date)>=7 THEN
           YEAR(service_date)+1 
   ELSE YEAR(service_date)
1
ответ дан 18 December 2019 в 07:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: