select distinct A.订单号,A.客户名称,A.品号,A.品名,A.颜色,A.型号,A.UK码,A.楦号,A.客人号,A.箱数 as 订单箱数,SUM(B.sl) AS 入库箱数 from proc_shengchan_notice_tiaoma_no_temp_table  A  JOIN BJdata.DBO.informationdata B ON left(A.订单条码号,len(A.订单条码号)-4)=left(B.BarCode,len(B.BarCode)-4)    
where B.Users<>'OUT-1'    
group by A.订单号,A.客户名称,A.品号,A.品名,A.颜色,A.型号,A.UK码,A.楦号,A.客人号,A.箱数,B.sl
提示:B.Users在表中有三种,OUT-1表示出库,IN-1表示入库1,IN-2表示入库2
执行完之后,可以将所有入库的数据显示出来:订单号  客户名称   品号          品名          颜色            UK码     楦号    客人号   订单箱数 入库箱数
----------------------------------------------------------------------------------------------------------    
005827 HUNTER W23800 D楦上中底里款童鞋 藏青色 1 32 1 18 4
005827 HUNTER W23800 D楦上中底里款童鞋 藏青色 1 32 1 18 9
005827 HUNTER W23800 D楦上中底里款童鞋 藏青色 10 27 10 15 5
005827 HUNTER W23800 D楦上中底里款童鞋 藏青色 10 27 10 15 7
005827 HUNTER W23800 D楦上中底里款童鞋 藏青色 11 29 11 15 5
005827 HUNTER W23800 D楦上中底里款童鞋 藏青色 12 30 12 23 3
005827 HUNTER W23800 D楦上中底里款童鞋 藏青色 12 30 12 23 4
但是,第1、2条,只是一个为IN-1,一个为IN-2,我想要得到入库箱数为9的记录
      第3、4条,只是一个为IN-1,一个为IN-2,我想要得到入库箱数为7的记录
      第6、7条,只是一个为IN-1,一个为IN-2,我想要得到入库箱数为4的记录
...............
也就是说我想要得到结果是:
订单号  客户名称   品号          品名          颜色            UK码     楦号    客人号   订单箱数 入库箱数
----------------------------------------------------------------------------------------------------------    
005827 HUNTER W23800 D楦上中底里款童鞋 藏青色 1 32 1 18 9
005827 HUNTER W23800 D楦上中底里款童鞋 藏青色 10 27 10 15 7
005827 HUNTER W23800 D楦上中底里款童鞋 藏青色 11 29 11 15 5
005827 HUNTER W23800 D楦上中底里款童鞋 藏青色 12 30 12 23 4
该怎么实现啊?请大家帮帮忙!有需要请加qq 493103924

解决方案 »

  1.   

    select 
        distinct A.订单号,A.客户名称,A.品号,A.品名,
        A.颜色,A.型号,A.UK码,A.楦号,A.客人号,A.箱数 as 订单箱数,SUM(B.sl) AS 入库箱数 
    from proc_shengchan_notice_tiaoma_no_temp_table A 
    JOIN BJdata.DBO.informationdata B 
    ON left(A.订单条码号,len(A.订单条码号)-4)=left(B.BarCode,len(B.BarCode)-4)   
    where B.Users<>'OUT-1'   
    group by A.订单号,A.客户名称,A.品号,A.品名,A.颜色,A.型号,A.UK码,A.楦号,A.客人号,A.箱数
      

  2.   

    第一,你的语句跟执行得到的结果是不吻合的(列数不同)。
    第二,你应该是想得到如下语句的结果:
    select A.订单号,A.客户名称,A.品号,A.品名,A.颜色,A.型号,A.UK码,A.楦号,A.客人号,A.订单箱数,max(入库箱数) 入库箱数
    from
    (
    select distinct A.订单号,A.客户名称,A.品号,A.品名,A.颜色,A.型号,A.UK码,A.楦号,A.客人号,A.箱数 as 订单箱数,SUM(B.sl) AS 入库箱数 from proc_shengchan_notice_tiaoma_no_temp_table A JOIN BJdata.DBO.informationdata B ON left(A.订单条码号,len(A.订单条码号)-4)=left(B.BarCode,len(B.BarCode)-4)   
    where B.Users<>'OUT-1'   
    group by A.订单号,A.客户名称,A.品号,A.品名,A.颜色,A.型号,A.UK码,A.楦号,A.客人号,A.箱数,B.sl
    )A
    group by A.订单号,A.客户名称,A.品号,A.品名,A.颜色,A.型号,A.UK码,A.楦号,A.客人号,A.箱数
      

  3.   

    B.sl 不要放到group by 子句中!
    如果你需要入库1和入库2之和,直接去掉group by 子句的",B.sl "即可
    如果你是要取入库1和入库2中的最大值,前面的SUM(B.sl) AS 入库箱数 改成max(B.sl)AS 入库箱数,同时也应去掉group by 子句的",B.sl "
      

  4.   

    同意LS几位的意见,B.sl不需要放在group by中,要取入库1和入库2的总和,在列中用sum(),要取入库1和入库2的最大值,用max()。我看LZ的意思应该还是用入库2的值吧?