使用codeigniter mysql的月度销售图表报告

mspsb9vt  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(199)

我试着生成月份销售图表报告。

我们的月份标签格式不正确。我需要这样的标签第一个月,第二个月,第三个月,第四个月,。。。。。。。
我们的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

以任何其他方式生成正确的标签格式

htrmnn0y

htrmnn0y1#

用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

相关问题