JT Tomato� 2019-05-28 11:24 采纳率: 20%
浏览 878
已采纳

Mysql 中使用Case when 语句分出来月份,无法正常全部显示,求破解

各位 大家好:

在Mysql 中的原始数据只显示具体日期, 想要通过case...when..的方法将日期分类成具体的月份,并算出每个月份对应的销售总价。

如图:元数据表中包含多个月份的记录。
图片说明

但是当我尝试运行代码的时候,发现只能显示2月份的
图片说明

以下是我的SQL 代码,求高手指点迷津


SELECT 


CASE WHEN sql_data.`销售时间`BETWEEN '2016-01-01 00:00:00' AND '2016-01-31 00:00:00' THEN '1月'
     WHEN sql_data.`销售时间`BETWEEN '2016-02-01 00:00:00' AND '2016-02-28 00:00:00' THEN '2月'
     WHEN sql_data.`销售时间`BETWEEN '2016-03-01 00:00:00' AND '2016-03-31 00:00:00' THEN '3月'
     WHEN sql_data.`销售时间`BETWEEN '2016-04-01 00:00:00' AND '2016-04-30 00:00:00' THEN '4月'
     WHEN sql_data.`销售时间`BETWEEN '2016-05-01 00:00:00' AND '2016-05-31 00:00:00' THEN '5月'
     WHEN sql_data.`销售时间`BETWEEN '2016-06-01 00:00:00' AND '2016-06-30 00:00:00' THEN '6月'
     WHEN sql_data.`销售时间`BETWEEN '2016-07-01 00:00:00' AND '2016-07-31 00:00:00' THEN '7月'
     WHEN sql_data.`销售时间`BETWEEN '2016-08-01 00:00:00' AND '2016-08-31 00:00:00' THEN '8月'
     WHEN sql_data.`销售时间`BETWEEN '2016-09-01 00:00:00' AND '2016-09-30 00:00:00' THEN '9月'
     WHEN sql_data.`销售时间`BETWEEN '2016-10-01 00:00:00' AND '2016-10-31 00:00:00' THEN '10月'
     WHEN sql_data.`销售时间`BETWEEN '2016-11-01 00:00:00' AND '2016-11-30 00:00:00' THEN '11月'
     WHEN sql_data.`销售时间`BETWEEN '2016-12-01 00:00:00' AND '2016-12-31 00:00:00' THEN '12月'
     ELSE 'other'
     END AS '月份',


SUM(sql_data.`总价`) 
FROM sql_data 

图片说明

  • 写回答

4条回答 默认 最新

  • Json-Huang 2019-05-28 13:03
    关注

    换种简单的写法,

    SELECT MONTH(`销售时间`) as '月份',sum(`总价`) from sql_data
    GROUP BY MONTH(`销售时间`)
    

    数据表定义:

    CREATE TABLE `sql_data` (
      `id` varchar(255) DEFAULT NULL,
      `销售时间` datetime DEFAULT NULL,
      `总价` double DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8
    

    查询前表数据:
    图片说明
    查询后:
    图片说明

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码