首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

昨天的面试题不会,请高手指教(一句Sql语句)解决思路

2012-01-11 
昨天的面试题不会,请高手指教(一句Sql语句)表1(货物总数)类型总数A900B1000表2(使用了的货物)类型使用数A2

昨天的面试题不会,请高手指教(一句Sql语句)
表1(货物总数)
类型     总数
  A         900
  B         1000


表2(使用了的货物)
  类型     使用数
    A             20
    B             60
    A             11


现在要求用一句sql语句打印出A,B各剩了多少

[解决办法]



--创建测试表T1
create table T1 (类型 varchar(100), 总数 int)

--追加测试数据
insert into T1 select 'A ', 900
insert into T1 select 'B ', 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 类型


--删除测试表
drop table T1,T2


/*

--结果

类型 剩余数量
A 869
B 940

*/

热点排行