Месячный график продаж с использованием codeigniter mysql - PullRequest
0 голосов
/ 11 сентября 2018

Я пытаюсь сгенерировать месячный отчет с графиком продаж. enter image description here

Наш лейбл месяца - неправильный формат мне нужен такой ярлык 1-й месяц, 2-й месяц, 3-й месяц, 4-й месяц, .......

Наш запрос MySQL

SELECT  concat('Month ' ,(@count:=@count+1)) as month,sum(grand_total) as amount FROM tra_inv_hd WHERE   fi_yr =1 group by MONTH(trninvhddt) order by trninvhddt asc 

Если для изменения моего запроса использовалось условие elseif, наконец, я получил результат

SELECT if(MONTH(trninvhddt)=1,concat(MONTH(trninvhddt),'st Month'),if(MONTH(trninvhddt)=2,concat(MONTH(trninvhddt),'nd Month'),if(MONTH(trninvhddt)=3,concat(MONTH(trninvhddt),'rd Month'),concat(MONTH(trninvhddt),'th Month')))) as month,sum(grand_total) as amount FROM tra_inv_hd WHERE fi_yr =1 group by MONTH(trninvhddt) order by trninvhddt asc

Любой другой способ создания запроса в правильном формате метки

1 Ответ

0 голосов
/ 11 сентября 2018

Вы можете получить тот же результат с оператором CASE, как показано ниже.

SELECT
  CONCAT(MONTH(trninvhddt), CASE
    WHEN MONTH(trninvhddt)%100 BETWEEN 11 AND 13 THEN "th Month"
    WHEN MONTH(trninvhddt)%10 = 1 THEN "st Month"
    WHEN MONTH(trninvhddt)%10 = 2 THEN "nd Month"
    WHEN MONTH(trninvhddt)%10 = 3 THEN "rd Month"
ELSE "th Month"
END) as month,sum(grand_total) as amount FROM tra_inv_hd WHERE fi_yr =1 group by MONTH(trninvhddt) order by trninvhddt asc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...