【问题标题】:Month wise data fetch from date field in mysql从mysql中的日期字段获取月份数据
【发布时间】:2021-10-20 08:02:00
【问题描述】:

我有一个表名billing,我的表数据如下所示

id site_name billing_date amount
1 abc 2021-01-15 100
2 abc 2021-02-15 80
3 abc 2021-03-15 120
4 abc 2021-04-15 110
5 abc 2021-05-15 105
6 abc 2021-06-15 90
7 abc 2021-07-15 106
8 abc 2021-08-15 70
9 xyz 2021-01-15 100
10 xyz 2021-02-15 90
11 xyz 2021-03-15 200
12 xyz 2021-04-15 300

我的预期结果会是这样的数据

site_name Year January February March Arpil May June July August September October November December
abc 2021 100 80 120 110 105 90 106 70 0 0 0 0
xyz 2021 100 90 200 300 0 0 0 0 0 0 0 0

另外site_name,abc月份January只有一条记录,February和其他月份一样只有一条记录。我已经尝试了以下代码,但没有得到预期的输出

select site_name, YEAR(billing_date) as YearName, monthname(billing_date) as monthName, amount
    from bills
    group by site_name, YEAR(billing_date),monthname(billing_date),amount
    order by site_name;

请对如何获得我的预期输出提出任何建议

【问题讨论】:

标签: php mysql sql database


【解决方案1】:

根据@jarlh 的以下链接,我已经按照以下代码解决了我的问题。这对我和我想要的东西真的很有帮助。

SELECT site_name, YearName 
, SUM(CASE WHEN month =  1 THEN amount END) January      
, SUM(CASE WHEN month =  2 THEN amount END) February      
, SUM(CASE WHEN month =  3 THEN amount END) March      
, SUM(CASE WHEN month =  4 THEN amount END) April      
, SUM(CASE WHEN month =  5 THEN amount END) May      
, SUM(CASE WHEN month =  6 THEN amount END) June      
, SUM(CASE WHEN month =  7 THEN amount END) July      
, SUM(CASE WHEN month =  8 THEN amount END) August      
, SUM(CASE WHEN month =  9 THEN amount END) September      
, SUM(CASE WHEN month =  10 THEN amount END) October   
, SUM(CASE WHEN month =  11 THEN amount END) November      
, SUM(CASE WHEN month = 12 THEN amount END) December   
FROM (SELECT ems_table.electric_bills.* 
    , EXTRACT(YEAR  FROM last_billing_date) YearName              
    , EXTRACT(MONTH FROM last_billing_date) month           
    FROM ems_table.electric_bills) 
    alias_table  GROUP BY site_name, YearName ORDER BY site_name ASC;

【讨论】:

    猜你喜欢
    • 2023-01-09
    • 2015-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-26
    • 1970-01-01
    • 1970-01-01
    • 2016-08-20
    相关资源
    最近更新 更多