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 matlab数字图像处理频率域滤波
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行