订单表结构是具体到每个订单下面多个产品,而仓库出货的表结构是对每个订单的金额汇总 不区分订单产品

因此如果想计算每个仓库每个产品的销售情况 需要将两个表连接起来 并且产品是昨天在线且有库存的产品

#昨日在线且有库存的SKU
SELECT a.城市,a.仓库,b.*
,SUM(a.订单额) AS 历史15天金额
,SUM(a.销量) AS 历史15天销量
,SUM(IF(a.订单日期>=DATE_ADD(CURRENT_DATE,INTERVAL - 7 DAY) AND a.订单日期<CURRENT_DATE,a.订单额,NULL)) AS 历史7天金额
,SUM(IF(a.订单日期>=DATE_ADD(CURRENT_DATE,INTERVAL - 7 DAY) AND a.订单日期<CURRENT_DATE,a.销量,NULL)) AS 历史7天销量
,SUM(IF(a.订单日期>=DATE_ADD(CURRENT_DATE,INTERVAL - 3 DAY) AND a.订单日期<CURRENT_DATE,a.订单额,NULL)) AS 历史3天金额
,SUM(IF(a.订单日期>=DATE_ADD(CURRENT_DATE,INTERVAL - 3 DAY) AND a.订单日期<CURRENT_DATE,a.销量,NULL)) AS 历史3天销量
FROM (#以订单ID匹配仓库 具体到每笔订单每个产品ID
SELECT a1.城市,a2.仓库,DATE(a1.订单日期) AS 订单日期,a1.订单ID,a1.产品ID,SUM(a1.金额) AS 订单额,SUM(汇总单品量) AS 销量
FROM `a003_order` AS a1
INNER JOIN `a018_cgwy_order_car` AS a2 ON a1.订单ID=a2.订单号
WHERE a1.城市="北京" AND a1.金额>0 AND a1.订单日期>=DATE_ADD(CURRENT_DATE,INTERVAL - 15 DAY) AND a1.订单日期<CURRENT_DATE
GROUP BY a1.订单ID,a1.产品ID
) AS a
INNER JOIN (#昨日在线且昨日有库存的产品
SELECT b1.产品ID,b3.商品名称,b3.单位,b1.单品售价,b3.转换率,b3.打包单位,b1.打包售价,b3.品牌,b3.库存总数,b3.库存打包数,b3.库存平均成本,b3.库存总额,b3.在线且有库存日期
FROM `a010_dynamic_sku` AS b1
INNER JOIN (
SELECT b2.城市,b2.产品ID,b2.商品名称,b2.品牌,b2.库存总数,b2.库存打包数,b2.库存平均成本,b2.库存总额,b2.单位,b2.打包单位,b2.转换率,DATE(b2.日期) AS 在线且有库存日期
FROM `a014_stock_daily` AS b2
WHERE b2.城市="北京" AND DATE(b2.日期)=DATE_ADD(CURRENT_DATE,INTERVAL - 1 DAY) AND b2.库存总数>0 AND b2.产品ID=42
GROUP BY b2.产品ID
) AS b3 ON b3.产品ID=b1.产品ID
WHERE b1.城市="北京" AND DATE(b1.在线日期)=DATE_ADD(CURRENT_DATE,INTERVAL - 1 DAY)
GROUP BY b1.产品ID
) AS b ON a.产品ID=b.产品ID
GROUP BY a.城市,a.仓库,a.产品ID
ORDER BY a.产品ID

MySQL学习_查看各仓库产品的销售情况_20161102的更多相关文章

  1. kaggle——分销商产品未来销售情况预测

    分销商产品未来销售情况预测 介绍 前面的几个实验中,都是根据提供的数据特征来构建模型,也就是说,数据集中会含有许多的特征列.本次将会介绍如何去处理另一种常见的数据,即时间序列数据.具体来说就是如何根据 ...

  2. MySQL学习----explain查看一条sql 的性能

    在开发的过程中,对于我们写的sql语句,我们有时候会考虑sql语句的性能,那么explain就是首选.Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决 ...

  3. MySQL学习_计算用户支付方式占比_20161104

    计算用户支付方式占比 SELECT b.*#根据城市ID 年月排序 FROM ( SELECT a.* FROM ( #纵向合并 SELECT b1.ID,a1.城市,a1.收款方式,DATE_FOR ...

  4. Linu下的Mysql学习详解_【all】

    Linux下Mysql简介 1.什么是Mysql(MariDB) 1.数据库:存储数据的仓库    2.关系型数据库:mysql(主流用5.5,5.6), oracle        本质:二维表   ...

  5. 我的MYSQL学习心得(三) 查看字段长度

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

  6. MySQL学习——查看数据库信息

    MySQL学习——查看数据库信息 摘要:本文主要学习了查看数据库信息的方法. 查询指定表的索引 语法 show index from 表名; 示例 mysql> show index from ...

  7. MySQL(一) -- MySQL学习路线、数据库的基础、关系型数据库、关键字说明、SQL、MySQL数据库、MySQL服务器对象、SQL的基本操作、库操作、表操作、数据操作、中文数据问题、 校对集问题、web乱码问题

    1 MySQL学习路线 基础阶段:MySQL数据库的基本操作(增删改查),以及一些高级操作(视图.触发器.函数.存储过程等). 优化阶段:如何提高数据库的效率,如索引,分表等. 部署阶段:如何搭建真实 ...

  8. mysql学习【第1篇】:初识MySQL

    狂神声明 : 文章均为自己的学习笔记 , 转载一定注明出处 ; 编辑不易 , 防君子不防小人~共勉 ! mysql学习[第1篇]:初识MySQL 只会写代码的是码农:学好数据库,基本能混口饭吃:在此基 ...

  9. Mysql 学习1

      Mysql学习   一.数据库   1 数据库概念(了解) 1.1 什么是数据库 数据库就是用来存储和管理数据的仓库! 数据库存储数据的优先: 可存储大量数据: 方便检索: 保持数据的一致性.完整 ...

随机推荐

  1. Controller层返回字符串

    刚开始练习,有时候想让Controller层返回一个字符串,但是他却去寻找这个字符串名字的jsp页面,结果肯定会是404的,研究了一会才明白过来,如果Controller需要返回一个值的话,需要再方法 ...

  2. python之脚本参数optparse

    import optparse usage = "myprog[ -f <filename>][-s <xyz>] arg1[,arg2..]" opter ...

  3. SpringBoot开启https以及http重定向

    一.使用JDK keytool创建SSL证书 进入$JAVA_HOME/bin目录,运行以下命令 keytool -genkey -alias WeChatAppletsDemo -keypass - ...

  4. servletRequest 常用操作

    package request; import java.io.IOException;import javax.servlet.ServletException;import javax.servl ...

  5. java 常用设计模式(转载)

    http://www.cnblogs.com/hnrainll/archive/2011/12/29/2305582.html 设计模式:一个程序员对设计模式的理解:“不懂”为什么要把很简单的东西搞得 ...

  6. Encoding::CompatibilityError: incompatible character encodings: GBK and UTF-8

    直接grunt serve读的css是.tmp/css/main.css 而这个文件不通过build生成出来是这样: /* Encoding::CompatibilityError: incompat ...

  7. 苹果开发之COCOA编程(第三版)下半部分

    第十八章:Image和鼠标事件 1.NSResponderNSView继承自NSResponder类.所有的事件处理方法都定义在NSResponder类中.NSResponder申明了如下方法:- ( ...

  8. System.DateTime.Now.ToString()的一些用法

    日期处理函数    //2007年4月24日    this.TextBox6.Text = System.DateTime.Now.ToString("D");    //200 ...

  9. MySQL 优化1

    系统在应用时间很长的情况下会慢慢变得很慢,无论是人还是机器为了更好的工作和学习都需要适当学习.数据库也是一样的用久了, 自然就会产生空间碎片,需要我们都i数据库中的数据块进行维护和整理.下面以实例来说 ...

  10. SPOJ SUBLEX - Lexicographical Substring Search 后缀自动机 / 后缀数组

    SUBLEX - Lexicographical Substring Search Little Daniel loves to play with strings! He always finds ...