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

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

#昨日在线且有库存的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. spring-struts-mybatis整合错误集锦

    尽管三大框架特别特别的好用,可是,当我第一次把这三个框架用maven整合到一起的时候.各种错误接踵而至,以下来做一下三大框架整合的总结: 首先是在导入三大框架的各种依赖包的时候,由于我用的是j2ee  ...

  2. Allegro Desgin Compare的用法与网表比较

    转:Allegro Desgin Compare的用法与网表比较 Allegro中自带有Design Compare工具,利用它可以比较明了的看到线路的差异.当然也可以通过SKILL进行比较,不过我们 ...

  3. PHP RSA加解密示例(转)

    1.生成密钥和公钥 开始前需要准备openssl环境 linux 需要安装openssl工具包,传送门http://www.openssl.org/source/ window 下需要安装openss ...

  4. POJ 2155 Matrix(二维树状数组,绝对具体)

    Matrix Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 20599   Accepted: 7673 Descripti ...

  5. Spring Security 表单登录

    1. 简介 本文将重点介绍使用Spring Security登录. 本文将构建在之前简单的Spring MVC示例之上,因为这是设置Web应用程序和登录机制的必不可少的. 2. Maven 依赖 要将 ...

  6. ReactiveCocoa入门教程——第一部分【转载】

    作为一个iOS开发者,你写的每一行代码几乎都是在响应某个事件,例如按钮的点击,收到网络消息,属性的变化(通过KVO)或者用户位置的变化(通过CoreLocation).但是这些事件都用不同的方式来处理 ...

  7. 机器学习实战之K-Means算法

    一,引言 先说个K-means算法很高大上的用处,来开始新的算法学习.我们都知道每一届的美国总统大选,那叫一个竞争激烈.可以说,谁拿到了各个州尽可能多的选票,谁选举获胜的几率就会非常大.有人会说,这跟 ...

  8. OOP版电子词典

    输入代码: /* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名:sum123.cpp * 作 者:林海云 * 完毕日期:20 ...

  9. NERO8.0刻录系统光盘

    正常启动NREO,点击NERO 8.0左下角图标(启动NERO应用程序和工具),选NERO Express Essentials,在左边的几个选项中选择“映像.项目.复制”,右边选“光盘映像或保存的项 ...

  10. 关于js全局变量数组push数据时dom中无数据的问题

    今天着实悲催,这问题整了好几个小时才解决.废话不多说,上问题. 一开始我定义了许多全局变量放在me下. var me = { dgOrderDetails: null, dgVisitNumbers: ...