[求助]SQL查询语句
表一(借出)单号 编码 名称 数量 客户
C0101 K0101 油 100 A
C0101 K0102 米 100 A
C0102 K0101 油 200 B
表二 (还回)
单号 编码 名称 数量 客户
R0101 K0101 油 50 A
有两个表,表一相当于出库表,表二相当于入库表,现在的问题是用SQL语句查出客户A,B 分别还欠多少东西。
请老师们帮帮忙。
declare @出库 table
(
单号 char(5),
编码 char(5),
名称 varchar(10),
数量 int,
客户 varchar(10)
)
declare @入库 table
(
单号 char(5),
编码 char(5),
名称 varchar(10),
数量 int,
客户 varchar(10)
)
insert into @出库
select 'C0101','K0101','油',100,'A' union all
select 'C0101','K0102','米',100,'A' union all
select 'C0102','K0101','油',200,'B'
insert into @入库
select 'R0101','K0101','油',50,'A'
select 客户=isnull(a.客户,b.客户),名称=isnull(a.名称,b.名称),所欠物资=isnull(a.数量,0)-isnull(b.数量,0)
from @出库 a full join @入库 b
on a.客户=b.客户
and isnull(a.名称,b.名称)=isnull(b.名称,a.名称)
order by isnull(a.客户,b.客户),isnull(a.名称,b.名称)
/*
客户 名称 所欠物资
---------- ---------- -----------
A 米 100
A 油 50
B 油 200
*/