关于数据库SQL语句关联搜索的问题?
SQL C#
一,有一按钮,从库存表:A表中搜索出来的数据,如下:
ID 名称 数量A
1 大米 200
2 高粱 100
3 小麦 500
4 大豆 100
5 绿豆 50
二,现在对搜索出来的数据进行出库操作,将出库操作好的数据放在出库表:B表中 如下:
ID AID 名称 数量B
1 4 大豆 50
2 5 绿豆 20
三,我试着用关联去达到自己想要的效果,如代码
select A.*,b.数量B where A.ID=B.AID
搜索出来的数据如下:但这不是我要的效果
ID 名称 数量A 数量B
1 大豆 100 50
2 绿豆 50 20
四,我要的搜索出来的效果如下:这才是我要的效果,我应该如何去写这段代码?
ID 名称 数量A 数量B
1 大米 200
2 高粱 100
3 小麦 500
4 大豆 100 50
5 绿豆 50 20
------解决方案--------------------select a.*,b.数量B
from a
left join (select aid,sum(数量B) as 数量B from b group by aid) as b
on A.ID=B.AID
如果一个aid出库记录有多笔,则需要先合并,然后再关联
------解决方案--------------------declare @ta table (id int,nameA varchar(20),quantityA int)
insert @ta
select
1 ,'大米', 200 union all select
2 , '高粱', 100 union all select
3 ,'小麦', 500 union all select
4 ,'大豆', 100 union all select
5 ,'绿豆', 50
declare @tb table (id int,aid int,nameB varchar(20),quantityB int)
insert @tb
select
1 , 4 , '大豆', 50 union all select
2 , 5 , '绿豆', 20
select a.*,b.quantityB from @ta a
left join @tb b on a.id=b.aid
/*查询结果
1 大米 200 NULL
2 高粱 100 NULL
3 小麦 500 NULL
4 大豆 100 50
5 绿豆 50 20
*/