数据库复杂查询,多表多联
首先看一下这个sql语句,然后以下是查询结果
语句如下:
select
e.ProductName,
e.Productid,
e.ProductNum,
e.Warehousename,
e.Warehouseid,
e.CheckInNum,
e.CheckOutNum,
e.StockNum from (select d.ProductName,d.Productid,d.ProductNum,d.Warehousename,d.Warehouseid,sum(d.CheckInNum) AS CheckInNum,sum(d.CheckOutNum) AS CheckOutNum ,sum(d.StockNum) AS StockNum from (SELECT a.WarehouseID, a.Warehouse AS WarehouseName,
a.ProductID, a.ProductName,a.ProductNum,ISNULL(b.ConfirmNum, 0) AS CheckInNum,
ISNULL(c.ConfirmNum, 0) AS CheckOutNum, ISNULL(b.ConfirmNum, 0) - ISNULL(c.ConfirmNum, 0) AS StockNum
FROM (SELECT wh.ID AS WarehouseID, wh.Name AS Warehouse, pro.ID AS ProductID, pro.Name AS ProductName,pro.Num AS ProductNum FROM dbo.Warehouse AS wh CROSS JOIN dbo.Product AS proWHERE (wh.sc = 0) AND (pro.sc = 0)) AS a LEFT OUTER JOIN (SELECT ProductName, ProductNameid,Productcode AS ProductNum, Warehouse, Warehouseid,SUM(ConfirmNum) AS ConfirmNumFROM dbo.CheckInConfirmList WHERE (sc = 0) GROUP BYProductNameid, ProductName, Warehouseid, Warehouse,Productcode) AS b ON a.WarehouseID = b.Warehouseid AND a.ProductID = b.ProductNameid LEFT OUTER JOIN (SELECT ProductName, ProductNameid,Productcode AS ProductNum, Warehouse, Warehouseid, SUM(ConfirmNum) AS ConfirmNum FROM dbo.CheckOutConfirmList WHERE (sc = 0)GROUP BY ProductNameid, ProductName, Warehouseid, Warehouse,Productcode) AS c ON a.WarehouseID = c.Warehouseid AND a.ProductID = c.ProductNameid) d group by d.ProductName,d.Productid,d.ProductNum,d.Warehousename,d.Warehouseid) ewhere e.CheckInNum!='0' or e.CheckOutNum!='0' or e.StockNum!='0'
解释:
数据库复杂查询,多表多联相关推荐
- java查询mysql装载bean_jsp与javabean链接mysql数据库并查询数据表的简单实例源码
jsp与javabean链接mysql数据库并查询数据表的简单实例源码.这个简单的实例是给新手学习的,或者一些高手临时忘记怎么使用jsp操作mysql数据库时候查找的,包括了建立mysql数据库连接的 ...
- mysql 最多查询数据库_mysql 查询全表某字段值最大的10条数据
展开全部 select * from 表 order by 要最大值的字段 desc limit 0,10 FILE: 在MySQL服务器上读写文件.62616964757a686964616fe59 ...
- [数据库] SQL查询语句表行列转换及一行数据转换成两列
本文主要讲述了SQL查询语句表之间的行列转换,同时也包括如何将一行数据转换成两列数据的方法.子查询的应用.decode函数的用法.希望文章对你有所帮助~ 1.创建数据库表及插入数据 2.子查询统计不同 ...
- mysql修改表charset_MySql数据库中查询修改表中字符编码(charset)的方法
MySQL字符集多种多样,下面为您列举了其中三种最多见的MySQL字符集查看方法,该方法供您参考,但愿对您学习MySQL数据库能有所启迪.mysql 1.查看MySQL数据库服务器和数据库MySQL字 ...
- 如何查询Oracle,Sql Server,MySQL 中的数据库名称、数据表名称、字段名称
在开发项目的时候有个功能需要查看数据库中有哪些表,以及每个表有哪些字段,在网上查看了一下,现在分享给大家. Oracle: 查询数据表(Tables)名称: select Table_Name, Ta ...
- MySQL数据库中查询数据库表、字段总数量,查询数据总量
最近要查询一些数据库的基本情况,由于以前用oracle数据库比较多,现在换了MySQL数据库,就整理了一部分语句记录下来. 1.查询数据库表数量 #查询MySQL服务中数据库表数据量SELECT CO ...
- 实验3数据库查询-学生表(Student)、课程表(Course)、学生选课表(SC)
答案 查询select 彻底删除drop 修改alter 创建creat --删除数据库 drop database TK --数据库名 查询学生表S中的所有信息 use TK --数据库名 se ...
- sql server跨服务器修改数据,SQL Server跨数据库服务器查询和跨表更新的详细操作...
SQL Server数据库跨数据库服务器查询和跨表更新的相关知识是本文我们主要要介绍的内容,接下来我们就通过一个实例来介绍这一过程.实例是这样的:想实现的功能很简单, 在我的本地一个表用来保存省的信息 ...
- mysql所有班级名称和人数_mysql数据库优化课程---12、mysql嵌套和链接查询(查询user表中存在的所有班级的信息?)...
mysql数据库优化课程---12.mysql嵌套和链接查询(查询user表中存在的所有班级的信息?) 一.总结 一句话总结: in:distinct:select * from class wher ...
- mysql查询动态表名的数据类型_Mysql中查询某个数据库中所有表的字段信息
前言 有时候,需要在数据库中查询一些字段的具体信息,而这些字段又存在于不同的表中,那么我们如何来查询呢? 在每一个数据库链接的information_schema数据库中,存在这样一张表--COLUM ...
最新文章
- sql输出表中重复数据
- 跟一个傻逼程序员合作是什么感受?
- mysql if语句后面执行两个语句_MySQL的if,case语句使用总结
- java给你的初步印象_Java之初印象
- android 仿QQ手机版
- hibernate 各历史版本下载 spring各历史版本下载
- mongodb 权限设置--用户名、密码、端口
- jsp中JAVA代码取select值_jsp获取下拉列表select选择的值 | 学步园
- 博一结束后的一些反思 -- 该如何平衡科研与生活
- SQL Server 2008 R2 建立数据库,建立表,建立存储过程
- 拆解查看unity游戏资源
- 计算机光盘无法格式化,怎么格式化光盘啊??求解!!
- 云服务器安装软件,如何在云服务器中安装软件
- 多智能体强化学习——相关论文
- 解决Office 2003 Word无法正常启动
- Unity 3D-learning 打飞碟游戏改进版ben
- 共振峰检测matlab,基于 LPC 系数的共振峰估计
- 考技术中称计算机一类二类,成都工贸职业技术学院2020年单招职业技能测试考试大纲(面向中职-信息技术类)...
- wps怎么关闭修改痕迹_如何在wps文字中将修订标记去掉
- Rust的安全系统编程