有
表a
serical cardid serid num
000001 001 0101 1
000001 001 0102 1
表b
carid serid num
001 0102 2
001 0101 24
001 0105 6
002 0101 5
得出CARid=0101的serid对应的num
如结果
carid serid num
001 0102 1
001 0101 23
001 0105 6
sql语句怎么写呀,谢谢
try:
select b.cardid,b.serid,(b.num-a.num) as num from 表a a,表b b where a.cardid=b.cardid and a.serid=b.serid
declare @a table
(
serical nvarchar(20),
cardid nvarchar(20),
serid nvarchar(20),
num int
)
declare @b table
(
carid nvarchar(20),
serid nvarchar(20),
num int
)
insert into @a
select 000001, 001 , 0101 , 1
union
select 000001, 001, 0102, 1
insert into @b
select 001, 0102 , 2
union
select 001 , 0101 , 24
union
select 001 , 0105 , 6
union
select 002 , 0101, 5
select b.carid , b.serid, (b.num -isnull(a.num,0))
from @a a right join @b b on a.cardid = b.carid and a.serid = b.serid
where b.carid = 001
carid serid
-------------------- -------------------- -----------
001 0101 23
001 0102 1
001 0105 6