MySQL统计每个月的销售合计数据

MySQL统计每个月的销售合计数据


在名为‘temp’数据库中有一张销售表(bb_sale),结构如下

字段名类型说明备注
F1Varchar销售ID
F2Varchar销售日期日期格式:2014-02-14
F3Varchar销售金额


表中的数据如下
在这里插入图片描述
(1)统计2014年1至12月份,每个月的销售合计数据,格式如下:月份、金额

SELECT b.月份,COALESCE(SUM(a.F3),0) AS 金额
FROM bb_sale a RIGHT JOIN
(
  SELECT '2014-01' AS 月份 FROM dual
  union
  SELECT '2014-02' AS 月份 FROM dual
   union
  SELECT '2014-03' AS 月份 FROM dual
   union
  SELECT '2014-04' AS 月份 FROM dual
   union
  SELECT '2014-05' AS 月份 FROM dual
   union
  SELECT '2014-06' AS 月份 FROM dual
   union
  SELECT '2014-07' AS 月份 FROM dual
   union
  SELECT '2014-08' AS 月份 FROM dual
   union
  SELECT '2014-09' AS 月份 FROM dual
   union
  SELECT '2014-10' AS 月份 FROM dual
   union
  SELECT '2014-11' AS 月份 FROM dual
   union
  SELECT '2014-12' AS 月份 FROM dual
) b
ON LEFT(a.F2,7)=b.月份
GROUP BY b.月份

运行效果:
在这里插入图片描述

(2)统计2014年1月份至12月份的销售合计数据,格式如下:月份、金额。这里的月份有点区别,比如1月份的数据,是指1月15号至2月15号之间的数据,同理2月份的数据,是指2月15号至3月15号之间的数据,以此类推。

SELECT '2014-01' AS 月份,COALESCE((SELECT SUM(F3) FROM bb_sale WHERE F2>='2014-01-15' AND F2 <'2014-02-15'),0) AS 金额
UNION
SELECT '2014-02' AS 月份,COALESCE((SELECT SUM(F3) FROM bb_sale WHERE F2>='2014-02-15' AND F2 <'2014-03-15'),0) AS 金额
UNION
SELECT '2014-03' AS 月份,COALESCE((SELECT SUM(F3) FROM bb_sale WHERE F2>='2014-03-15' AND F2 <'2014-04-15'),0) AS 金额
UNION
SELECT '2014-04' AS 月份,COALESCE((SELECT SUM(F3) FROM bb_sale WHERE F2>='2014-04-15' AND F2 <'2014-05-15'),0) AS 金额
UNION
SELECT '2014-05' AS 月份,COALESCE((SELECT SUM(F3) FROM bb_sale WHERE F2>='2014-05-15' AND F2 <'2014-06-15'),0) AS 金额
UNION
SELECT '2014-06' AS 月份,COALESCE((SELECT SUM(F3) FROM bb_sale WHERE F2>='2014-06-15' AND F2 <'2014-07-15'),0) AS 金额
UNION
SELECT '2014-07' AS 月份,COALESCE((SELECT SUM(F3) FROM bb_sale WHERE F2>='2014-07-15' AND F2 <'2014-08-15'),0) AS 金额
UNION
SELECT '2014-08' AS 月份,COALESCE((SELECT SUM(F3) FROM bb_sale WHERE F2>='2014-08-15' AND F2 <'2014-09-15'),0) AS 金额
UNION
SELECT '2014-09' AS 月份,COALESCE((SELECT SUM(F3) FROM bb_sale WHERE F2>='2014-09-15' AND F2 <'2014-09-15'),0) AS 金额
UNION
SELECT '2014-10' AS 月份,COALESCE((SELECT SUM(F3) FROM bb_sale WHERE F2>='2014-10-15' AND F2 <'2014-11-15'),0) AS 金额
UNION
SELECT '2014-11' AS 月份,COALESCE((SELECT SUM(F3) FROM bb_sale WHERE F2>='2014-11-15' AND F2 <'2014-12-15'),0) AS 金额
UNION
SELECT '2014-12' AS 月份,COALESCE((SELECT SUM(F3) FROM bb_sale WHERE F2>='2014-12-15' AND F2 <='2014-12-31' or F2>='2014-01-01' AND F2<'2014-01-15'),0) AS 金额

运行效果:
在这里插入图片描述

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值