SQL笔记---多表左联
这是实际场景当中的一个例子,拿出来分析总结思路。
-- SQL 查询 --
SELECT orderQuery.Rk_SkuCode ,
orderQuery.SkuName,
SUM(ISNULL(orderQuery.OrderTotal, 0))
- SUM(ISNULL(removeQuery.RemoveTotal, 0))
- SUM(ISNULL(pickQuery.PickTotal, 0))
- SUM(ISNULL(tempPickQuery.TempPickTotal, 0)) AS RealOrders ,
SUM(ISNULL(orderQuery.OrderTotal, 0)) AS Orders ,
SUM(ISNULL(removeQuery.RemoveTotal, 0)) AS Removes ,
SUM(ISNULL(pickQuery.PickTotal, 0)) AS Picks ,
SUM(ISNULL(stockQuery.StockTotal, 0)) AS Stocks ,
SUM(ISNULL(tempPickQuery.TempPickTotal, 0)) AS TempPicks
FROM ( SELECT Rk_SkuCode , do.Rk_SkuName AS SkuName,
SUM(do.UnitQty) AS OrderTotal
FROM dbo.SALE_Bill_Sale_Order o ,
dbo.SALE_Bill_Sale_Order_Detail do
WHERE o.Fk_ATS_Wfs_NodeId != 100100170
AND o.Fk_BillTypeId = 100100010
AND o.Pk_OrderId = do.Fk_OrderId
AND o.Fk_WarehouseId = 140416154556733
GROUP BY Rk_SkuCode,do.Rk_SkuName
) orderQuery
LEFT OUTER JOIN ( SELECT Rk_SkuCode ,
SUM(rd.Quantity) AS RemoveTotal
FROM dbo.WMS_Bill_Remove r ,
dbo.WMS_Bill_Remove_Detail rd
WHERE r.Pk_RemoveId = rd.Fk_RemoveId
AND r.Fk_WarehouseId = 140416154556733
AND r.Fk_BillTypeId = 100100110
AND r.Fk_ATS_Wfs_NodeId = 100300140
GROUP BY Rk_SkuCode
) removeQuery ON orderQuery.Rk_SkuCode = removeQuery.Rk_SkuCode
LEFT OUTER JOIN ( SELECT Rk_SkuCode ,
SUM(s.Quantity) AS PickTotal
FROM dbo.WMS_Stock s ,
dbo.WMS_Info_PartArea p
WHERE p.Pk_PartAreaId = s.Fk_PartAreaId
AND s.Fk_WarehouseId = 140416154556733
AND p.Ek_Type = 100100120
GROUP BY Rk_SkuCode
) pickQuery ON orderQuery.Rk_SkuCode = pickQuery.Rk_SkuCode
LEFT OUTER JOIN ( SELECT Rk_SkuCode ,
SUM(s.Quantity) AS StockTotal
FROM dbo.WMS_Stock s ,
dbo.WMS_Info_PartArea p
WHERE p.Pk_PartAreaId = s.Fk_PartAreaId
AND s.Fk_WarehouseId = 140416154556733
AND p.Ek_Type = 100100150
GROUP BY Rk_SkuCode
) stockQuery ON orderQuery.Rk_SkuCode = stockQuery.Rk_SkuCode
LEFT OUTER JOIN ( SELECT Rk_SkuCode ,
SUM(s.Quantity) AS TempPickTotal
FROM dbo.WMS_Stock s
WHERE s.Fk_WarehouseId = 140416154556733
AND s.Fk_LocationId = 140612114677165
GROUP BY Rk_SkuCode
) tempPickQuery ON orderQuery.Rk_SkuCode = tempPickQuery.Rk_SkuCode
GROUP BY orderQuery.Rk_SkuCode,orderQuery.SkuName
HAVING ( SUM(ISNULL(orderQuery.OrderTotal, 0))
- SUM(ISNULL(removeQuery.RemoveTotal, 0))
- SUM(ISNULL(pickQuery.PickTotal, 0))
- SUM(ISNULL(tempPickQuery.TempPickTotal, 0)) ) > 0
SQL笔记---多表左联的更多相关文章
- SQL SERVER 数据库表同步复制 笔记
SQL SERVER 数据库表同步复制 笔记 同步复制可运行在不同版本的SQL Server服务之间 环境模拟需要两台数据库192.168.1.1(发布),192.168.1.10(订阅) 1.在发布 ...
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
sql server 关于表中只增标识问题 由于我们系统时间用的过长,数据量大,设计是采用自增ID 我们插入数据的时候把ID也写进去,我们可以采用 关闭和开启自增标识 没有关闭的时候 ,提示一下错 ...
- CockroachDB学习笔记——[译]CockroachDB中的SQL:映射表中数据到键值存储
CockroachDB学习笔记--[译]CockroachDB中的SQL:映射表中数据到键值存储 原文标题:SQL in CockroachDB: Mapping Table Data to Key- ...
- SQL 笔记 By 华仔
-------------------------------------读书笔记------------------------------- 笔记1-徐 最常用的几种备份方法 笔记2-徐 收缩数据 ...
- Oracle笔记 多表查询
Oracle笔记 多表查询 本次预计讲解的知识点 1. 多表查询的操作.限制.笛卡尔积的问题: 2. 统计函数及分组统计的操作: 3. 子查询的操作,并且结合限定查询.数据排序.多表查询.统计查 ...
- 你真的会玩SQL吗?表表达式,排名函数
你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...
- sql 删除所有表
sql删除所有表语句: use 数据库名(是要删除表的所在的那个数据库的名称) GO declare @sql varchar(8000) while (select count(*) from sy ...
- **SQL某一表中重复某一字段重复记录查询与处理
sql某一表中重复某一字段重复记录查询与处理 1.查询出重复记录 select 重复记录字段 form 数据表 group by houseno having count(重复记录字段)> ...
- sql 笔记(mysql)
Windows 安装mysql(zip包) 1,zip包解压到要安装目录 2,配置环境变量,Path后加mysql路径\bin 3,修改配置文件,mysql目录下my-default.ini base ...
随机推荐
- dreamwave基础
WEBcs架构需要在客户段安装程序, 需要安装程序, 工作量会比较大, 需要安装和维护, 比如以后系统升级, 会很麻烦. 优点是一些业务逻辑可以在客户端, 可以减少服务器的一些压力, 客户端的界面操作 ...
- 第七章 二叉搜索树(d4)AVL树:(3+4)-重构
- cmd无法输入中文解决方案
1.regedit 2.选中HKEY_CURRENT_USER-Console,找到LoadConIme,双击,设置值为1,十六进制 3.此时应该已经ok了.如还不行,看一下%systemroot%\ ...
- 安装Python3后,centos使用yum报错
题记 在之前的文章中我自定义安装了Python3,并且修改了默认的 Python软链,今天想搭建一个 ftp 服务器,使用命令的时候出现了一个错误: 问题 1.使用 yum 安装 ftp工具 yum ...
- Visual Event查看页面相关绑定事件
页面相关绑定的事件比较复杂,在不熟悉的情况下很难找到相关逻辑的位置,所以希望借助工具来帮自己理清相关事件的脉络走向. 浏览器 工具 chrome( 58.0.3029.110) Visual Even ...
- iOS开发总结
最近在工作中使用Objective-C开发iOS客户端程序,它一方面和Server通讯,处理网络连接,收发报文,实现业务逻辑;另一方面为UI层提供各种业务API. 下面记录用到的相关知识点,困难, ...
- python编辑excel
转: http://www.cnblogs.com/lhj588/archive/2012/01/06/2314181.html
- Codeforces 658A. Robbers' watch 模拟
A. Robbers' watch time limit per test: 2 seconds memory limit per test: 256 megabytes input: standar ...
- Web开发者工具下载
登录微信公众号:https://mp.weixin.qq.com
- Vue.js2 + Laravel5 采用 CORS 方式解决 AJAX 跨域的问题
一.建立中间件 php artisan make:middleware CorsAjax 二.编写中间件 CorsAjax <?phpnamespace App\Http\Middleware; ...