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       

解决方案 »

  1.   

    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出库记录有多笔,则需要先合并,然后再关联
      

  2.   

    三个表:djb, Storage_kc, ck1_ls
     
    回1楼,我按照你说的改了下我的代码.
    select djb.*,Storage_kc.Quantity,Storage_kc.res,Storage_kc.ID,ck1_ls.Quantity_ck from djb,Storage_kc left join (select KCID,sum(Quantity_ck) as Quantity_ck  from ck1_ls group by KCID)as ck1_ls on djb.Number=Storage_kc.DJBID and djb.Number=ck1_ls.DJBID and Storage_kc.GoodsName like '%" + @TextBox6.Text + "%' ORDER BY djb.GoodsName
    请看下以上代码可以运行成功吗?绑定到GRIDVIEW上.我感觉自己是在胡乱的改,找不到方向.你为我做的是2个表,结果我这个有3个表.
      

  3.   

    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  ,'绿豆', 50declare @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
    */