mysql按月统计六个月内不同类型订单的成交金额

创建数据库

CREATE DATABASE test;

创建订单表

CREATE TABLE `t_order` (
`id` bigint(4) NOT NULL AUTO_INCREMENT COMMENT '主键,自增',
`source` smallint(1) NOT NULL COMMENT '订单来源:1:商城 2:订单导入',
`status` smallint(1) NOT NULL COMMENT '订单状态:1: 待确认 2:已确认 3:已完成',
`order_amt` decimal(20,8) NOT NULL COMMENT '订单总金额',
`create_user_id` bigint(4) DEFAULT NULL COMMENT '创建人id',
`create_time` datetime DEFAULT NULL COMMENT '创建日期',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='订单表';

此处订单表只涉及统计需要的字段,实际开发应该会复杂一些。

插入测试数据

INSERT INTO `t_order` (`id`, `source`, `status`, `order_amt`, `create_user_id`, `create_time`) VALUES ('', '', '', '8000.00000000', '', '2018-01-01 22:12:41');
INSERT INTO `t_order` (`id`, `source`, `status`, `order_amt`, `create_user_id`, `create_time`) VALUES ('', '', '', '9000.00000000', '', '2018-05-16 22:13:24');
INSERT INTO `t_order` (`id`, `source`, `status`, `order_amt`, `create_user_id`, `create_time`) VALUES ('', '', '', '5000.00000000', '', '2018-01-17 22:14:00');
INSERT INTO `t_order` (`id`, `source`, `status`, `order_amt`, `create_user_id`, `create_time`) VALUES ('', '', '', '12000.00000000', '', '2017-11-16 22:15:03');
INSERT INTO `t_order` (`id`, `source`, `status`, `order_amt`, `create_user_id`, `create_time`) VALUES ('', '', '', '7000.00000000', '', '2018-04-18 22:15:43');

统计六个月内不同类型已完成状态订单的成交额

SELECT
six_month.`month` `month`,
source.source source,
IFNULL(SUM(o.order_amt), 0) orderAmt
FROM
(
SELECT DATE_FORMAT(now(), '%Y-%c') month FROM DUAL
UNION ALL SELECT DATE_FORMAT(date_sub(now(), INTERVAL 1 MONTH), '%Y-%c') month FROM DUAL
UNION ALL SELECT DATE_FORMAT(date_sub(now(), INTERVAL 2 MONTH), '%Y-%c') month FROM DUAL
UNION ALL SELECT DATE_FORMAT(date_sub(now(), INTERVAL 3 MONTH), '%Y-%c') month FROM DUAL
UNION ALL SELECT DATE_FORMAT(date_sub(now(), INTERVAL 4 MONTH), '%Y-%c') month FROM DUAL
UNION ALL SELECT DATE_FORMAT(date_sub(now(), INTERVAL 5 MONTH), '%Y-%c') month FROM DUAL
) six_month
CROSS JOIN (
SELECT 1 source FROM DUAL
union all
SELECT 2 source FROM DUAL
) source
LEFT JOIN t_order o ON o.source = source.source
AND DATE_FORMAT(o.create_time, '%Y-%c') = six_month.`month`
AND `status` = 3
GROUP BY
six_month.`month`,
source.source;

统计结果

从结果可以看出,统计出了最近六个月内每个月每一种订单类型的已完成状态的订单的成交额。

mysql按月统计六个月内不同类型订单的成交金额的更多相关文章

  1. 实现mysql按月统计的教程

    From: http://www.jbxue.com/db/758.html 实现mysql按月统计的教程   mysql有个字段是DATETIME类型,要实现可以按月统计,该怎么写sql语句? se ...

  2. mysql 按月统计但是有几个月没有数据,需要变成0

    创建现在倒过去的12个月的视图 CREATE VIEW `past_12_month_view` AS SELECT DATE_FORMAT(CURDATE(), '%Y-%m') AS `month ...

  3. mysql按日/周/月统计

    一.mysql按日统计 ) count ' and start_time > '2017-06-28' group by days; 二.mysql按周统计 ) ' group by weeks ...

  4. mysql 时间戳 按周、日、月 统计方法 附 date格式

    create_time时间戳格式 SELECT FROM_UNIXTIME(create_time,'%Y%u') weeks,COUNT(id) COUNT FROM role GROUP BY w ...

  5. MySQL按照月进行统计

    MySQL按照月进行统计 今天需要后台提供一个按月统计的API.所以查了一下SQL语句的实现方法. 按月统计SQL select date_format(createtime, '%Y-%m') as ...

  6. mysql按月,按日分组统计数据

    group by DATE_FORMAT(createtime,'%Y-%m');//按月统计数据 group by DATE_FORMAT(createtime,'%Y-%m-%d');//按天统计 ...

  7. 我的MYSQL学习心得(六) 函数

    我的MYSQL学习心得(六) 函数 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...

  8. echart报表插件使用笔记(二)--按月统计

    按月统计注冊人数 java类: package com.spring.controller; import java.io.IOException; import java.sql.Connectio ...

  9. SqlServer mssql 按月统计所有部门

    以订单统计为例,前端展示柱状图(Jquery统计): 表及主要字段描述如下:表名:Orders1.日期CreateTime2.金额Amount3.用户UserID 情况一:根据部门统计某一年每月销量( ...

随机推荐

  1. Hadoop源码解析 1 --- Hadoop工程包架构解析

    1 Hadoop中各工程包依赖简述     Google的核心竞争技术是它的计算平台.Google的大牛们用了下面5篇文章,介绍了它们的计算设施.     GoogleCluster: http:// ...

  2. Java内存管理特点

    Java内存管理特点     Java一个最大的优点就是取消了指针,由垃圾收集器来自动管理内存的回收.程序员不需要通过调用函数来释放内存. 1.Java的内存管理就是对象的分配和释放问题.     在 ...

  3. Python字符串中的r前缀

    在Python中,如果字符串的前面有r/R前缀,那么,就会禁用转义符\的功能: >>>path = r'C:\new\text.dat' >>>pah 'C:\\n ...

  4. # 团队作业MD

    队员姓名与学号 051501124 王彬(组长) 111500206 赵畅 031602215 胡展瑞 031602320 李恒达 031602131 佘岳昕 031602431 王源 0316022 ...

  5. ubuntu apache nginx 启动 关闭

    转载自:http://www.comflag.com/2011/05/01/apache-web.htm 电影<社交网络>中,facebook创始人马克.扎克失恋后入侵哈佛大学宿舍楼服务器 ...

  6. Alpha-1

    前言 失心疯病源1 团队代码管理github 站立会议 队名:PMS 530雨勤(组长) 今天完成了那些任务 10:00~13:00 OpenCV环境配置,Matlab工具包下载 15:40~17:1 ...

  7. C# 中的 Async 和 Await

    这篇文章由Filip Ekberg为DNC杂志编写. 自跟随着.NET 4.5 及Visual Studio 2012的C# 5.0起,我们能够使用涉及到async和await关键字的新的异步模式.有 ...

  8. C# 知识回顾 - 匿名方法

    C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...

  9. BER-TLV数据结构

    本文是自身在研究学习过程中碰到的问题,整理而成. 为了便于后文的引用说明,先列出一段TLV结构的数据: [6F] 4D │ ├─[] A0000003330101 │ ├─[A5] │ │ ├─[] ...

  10. delphi dbgrid 批量保存

    unit uzcdbadd; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Fo ...