<select id="orderProductStatistics" resultMap="ProductStatisticsVOMap">
SELECT
ls.*,IFNULL(sr.out_count,0) AS out_count
FROM
(
SELECT
od.product_id,pri.`product_type`,
GROUP_CONCAT(DISTINCT pri.`name`) AS product_name,
IFNULL(SUM(od.`product_num`),0) AS dj_count
FROM order_detail od
LEFT JOIN order_info oi ON od.`order_id`=oi.`id`-- 订单信息
LEFT JOIN product_info pri ON od.`product_id`=pri.`id`-- 产品信息
<where>
(oi.`is_cancel` ='' OR oi.`is_cancel` IS NULL OR oi.`is_cancel`='0')
<if test="startDate != null">
AND (DATE_FORMAT(oi.`create_time`,'%Y-%m-%d') &gt;= #{startDate})
</if>
<if test="endDate != null">
AND (DATE_FORMAT(oi.`create_time`,'%Y-%m-%d') &lt;= #{endDate})
</if>
</where>
GROUP BY od.product_id
) AS ls
LEFT JOIN
(
SELECT
psr.`product_id`,SUM(psr.`product_count`) AS out_count
FROM product_stock_record psr
<where>
psr.`stock_type`='0'
<if test="startDate != null">
AND (DATE_FORMAT(psr.`create_time`,'%Y-%m-%d') &gt;= #{startDate})
</if>
<if test="endDate != null">
AND (DATE_FORMAT(psr.`create_time`,'%Y-%m-%d') &lt;= #{endDate})
</if>
</where>
GROUP BY psr.`product_id`
) sr ON sr.product_id = ls.product_id
</select>

分组统计SQL(mysql)的更多相关文章

  1. mysql 分组统计SQL语句

    1.按照特定字段: 2.在某一日期范围内: 3.按日.按月统计: 4.动态传入数据库表名称. select <if test="dateType=="d"" ...

  2. 分组统计SQL

    Itpub上遇到一个求助写SQL的帖子,感觉很有意思,于是写出来看看,要求如下: 有个计划表1, 记录物料的年度计划量 有个实际使用情况表2,记录实际使用情况. 最后要出个统计表,把计划和实际的数据结 ...

  3. Mysql按日、周、月进行分组统计

    我们在用 Mysql 制作数据可视化图表时候,经常需要按照天.周.月等不同的粒度对数据进行分组统计.而我们的时间可能是 “2017/12/5 0:0:0” 这种准确的时间. 所以在进行分组之前我们需要 ...

  4. sql group by hour 按小时分组统计

    Time字段以小时分组统计 select datepart(hour,time) hour,count(1) count from table where Similarity<75 group ...

  5. mysql 分组统计、排序、取前N条记录解决方案

    需要在mysql中解决记录的分组统计.排序,并抽取前10条记录的功能.现已解决,解决方案如下: 1)表结构 CREATE TABLE `policy_keywords_rel` ( `id` int( ...

  6. Linq to SQL 语法查询(链接查询,子查询 & in操作 & join,分组统计等)

    Linq to SQL 语法查询(链接查询,子查询 & in操作 & join,分组统计等) 子查询 描述:查询订单数超过5的顾客信息 查询句法: var 子查询 = from c i ...

  7. Mysql 根据时间戳按年月日分组统计

    Mysql 根据时间戳按年月日分组统计create_time时间格式SELECT DATE_FORMAT(create_time,'%Y%u') weeks,COUNT(id) COUNT FROM ...

  8. Mysql中较为复杂的分组统计去重复值

    这是我的代码: 前提是做了一个view:att_sumbase 首先分开统计每天的中午.下午饭点人数,这时需要分别去除中午和下午重复打卡的人.用了记录集的交,嵌套select的知识. 注意不能直接使用 ...

  9. SQL 分组统计 行转列 CASE WHEN 的使用

    原文地址:http://blog.itpub.net/26451903/viewspace-733526 原文在分组统计部分  sql是有问题的     本文已将sql改正   已用红色标记  Cas ...

随机推荐

  1. Android 为控件添加点击涟漪效果

    Android在5.0版为Button默认添加了点击时的涟漪效果,而且在其他的控件上也可以轻松的实现这种炫酷的效果.涟漪效果可以分为两种,一种时有边界的涟漪,另一种时无边界的涟漪.所谓的有边界,即涟漪 ...

  2. <老古董>1962年的线性支持向量机解法

    我们说“训练”支持向量机模型,其实就是确定"最大间隔超平面". 用数学语言来说就是确定一个最优的W.好比训练一个逻辑回归模型的目的是确定最优的W和b. 输入 X,为一个n维向量 输 ...

  3. 如何通过C语言获取主机WLAN下的IPv4地址,MAC地址

    #include "stdio.h" #include "windows.h" void GetHostWLAN_IPv4_AND_MAC(char IPv4[ ...

  4. Linux笔记01

    linux目录结构 : linux只有一个目录. usr:等价于programfiles: etc:存放系统配置 root:管理员(超级用户)目录, home:存放其他用户的目录: lib:共享包: ...

  5. 题目(或游戏)流程控制器上传到GitHub

    题目控制系统 1 支持 题目按相同的个数分组 2 支持 pause resume 3 支持 每题限定时间 4 支持 支持对计时器进行回调 5 支持 在全流程开始,全流程结束,每组开始,每组结束,每题开 ...

  6. cat <<EOF> file

    .多行导入文件(新建文件或者覆盖文件内容)   cat << EOF > abcd.txt Hello! This is a test file! Test for cat and ...

  7. Java学生管理系统(IO版)

    图解: cade: student.java /* * 这是我的学生类 */ public class Student { //学号 private String id; //姓名 private S ...

  8. Python的安装部署

    Python的安装部署 参考:https://www.runoob.com/w3cnote/pycharm-windows-install.html 参考:https://jingyan.baidu. ...

  9. nginx worker进程循环

    worker进程启动后,其首先会初始化自身运行所需要的环境,然后会进入一个循环,在该循环中不断检查是否有需要执行的事件,然后处理事件.在这个过程中,worker进程也是需要与master进程交互的,更 ...

  10. elasticsearch + springboot 整合

    https://blog.csdn.net/chengyuqiang/article/details/102938266 https://blog.csdn.net/chengyuqiang/arti ...