要求用一句sql语句打印出A,B各剩了多少
2007-09-04 13:56
323 查看
表1(货物总数)
类型 总数
A 900
B 1000
表2(使用了的货物)
类型 使用数
A 20
B 60
A 11
现在要求用一句sql语句打印出A,B各剩了多少
--光full join,还不够,需要用isnull()函数,否则,都是空
--如:
--创建测试表T1
create table T1 (类型 varchar(100), 总数 int)
--追加测试数据
insert into T1 select 'A', 900
insert into T1 select 'B', 1000
insert into T1 select 'C', 1000
--创建测试表T2
create table T2 (类型 varchar(100), 使用数 int)
--追加测试数据
insert into T2 select 'A', 20
insert into T2 select 'B', 60
insert into T2 select 'A', 11
--你要的SQL语句
select 类型,sum(数量) as 剩余数量
from
(
select 类型,总数 as 数量
from T1
union all
select 类型,使用数*(-1) as 数量
from T2
) as t
group by 类型
select a.类型,(isnull(a.总数,0)-isnull(b.使用数,0)) as [剩余数量]
from T1 a
full join (select 类型,sum(使用数)使用数 from T2 group by 类型)b
on a.类型=b.类型
--删除测试表
drop table T1,T2
/*
--结果
类型 剩余数量
A 869
B 940
*/
类型 总数
A 900
B 1000
表2(使用了的货物)
类型 使用数
A 20
B 60
A 11
现在要求用一句sql语句打印出A,B各剩了多少
--光full join,还不够,需要用isnull()函数,否则,都是空
--如:
--创建测试表T1
create table T1 (类型 varchar(100), 总数 int)
--追加测试数据
insert into T1 select 'A', 900
insert into T1 select 'B', 1000
insert into T1 select 'C', 1000
--创建测试表T2
create table T2 (类型 varchar(100), 使用数 int)
--追加测试数据
insert into T2 select 'A', 20
insert into T2 select 'B', 60
insert into T2 select 'A', 11
--你要的SQL语句
select 类型,sum(数量) as 剩余数量
from
(
select 类型,总数 as 数量
from T1
union all
select 类型,使用数*(-1) as 数量
from T2
) as t
group by 类型
select a.类型,(isnull(a.总数,0)-isnull(b.使用数,0)) as [剩余数量]
from T1 a
full join (select 类型,sum(使用数)使用数 from T2 group by 类型)b
on a.类型=b.类型
--删除测试表
drop table T1,T2
/*
--结果
类型 剩余数量
A 869
B 940
*/
相关文章推荐
- MySQL:一句SQL语句实现从第几条读多少条
- Thinkphp3.2.3打印上一句执行的sql语句
- 一句SQL语句解决倒序数据分页提取
- ibatis在debug时打印完整的SQL语句
- log4j2打印Mybatis执行的SQL语句及SQL语句的执行时间
- mybatis打印sql语句到控制台
- 打印sql语句方法
- log4j.xml 简单配置 打印 mybatis 执行的 sql 语句
- Mybatis在编译器中打印sql语句及执行后的结果
- 为什么在tpshop中用getlastsql 打印不出来sql语句,
- 在myBaits中打印sql语句
- mybatis下使用log4j打印sql语句和执行结果
- spring集成mybatis后,需要打印SQL语句
- Sql语句你知道多少(五)------select语句
- 用过SQL语句获取织梦DedeCMS每个栏目各有多少文章
- SSH中设置Hibernate执行的SQL 语句打印控制台
- mybatis下使用log4j打印sql语句和执行结果
- Laravel5.3 注册监听器--实时打印SQL语句
- 秋色园QBlog技术原理解析:性能优化篇:打印页面SQL,全局的SQL语句优化(十三)
- 打印出Ibatis最终的SQL语句