SELECT 发货人,SUM(件数),SUM(现金),SUM(上付),SUM(月结),SUM(欠款),SUM( 运费 ) 
FROM (
    你的查询
) AS A
GROUP BY 发货人

解决方案 »

  1.   


    可以先把你的查询放到一张临时表#中
    SELECT 发货人,件数=SUM(件数),现金=SUM(现金),上付=SUM(上付),月结=SUM(月结),欠款=SUM(欠款),运费=SUM(运费)
    FROM  #
    GROUP BY 发货人
      

  2.   


    if object_id('tb') is not null
      drop table tb
    go
    create table tb([交易单号] varchar(10),[发货人] varchar(10),[件数] int,[现金] int,[上付] int,[月结] int,[欠款] int,[运费] int,[结算方式] varchar(10))
    insert tb select 90412001,'A',1,10,0,0,0,10,'现金'
    insert tb select 90412001,'A',2,20,0,0,0,20,'现金'
    insert tb select 90412002,'B',3,0,10,0,0,10,'上付'
    insert tb select 90412003,'B',5,0,0,10,0,10,'月结'
    insert tb select 90412004,'C',3,0,0,0,50,50,'欠款'
    go--select * from tbselect 发货人,sum(件数) 件数,sum(现金) 现金,sum(上付) 上付,sum(月结) 月结,sum(欠款) 欠款,sum(运费) 运费
    from tb 
    group by 发货人
    /*
    发货人        件数          现金          上付          月结          欠款          运费
    ---------- ----------- ----------- ----------- ----------- ----------- -----------
    A          3           30          0           0           0           30
    B          8           0           10          10          0           20
    C          3           0           0           0           50          50(3 行受影响)
    */
      

  3.   

    select 发货人,sum(件数) 件数,sum(现金) 现金,sum(上付) 上付,sum(月结) 月结,sum(欠款) 欠款,sum(运费) 运费
    from (select * from a join b on a.id=b.id) tb 
    group by 发货人
      

  4.   


    SELECT 交易单号,SUM(ISNULL(件数 ,0)) OVER (PARTITION BY 发货人) 件数,
    SUM(ISNULL(现金 ,0)) OVER (PARTITION BY 发货人) 现金,
    SUM(ISNULL(上付 ,0)) OVER (PARTITION BY 发货人) 上付,
    SUM(ISNULL(月结 ,0)) OVER (PARTITION BY 发货人) 月结,
    SUM(ISNULL(欠款 ,0)) OVER (PARTITION BY 发货人) 欠款, 
    SUM(ISNULL(运费 ,0)) OVER (PARTITION BY 发货人) 运费
     FROM @Taba/*
    交易单号     件数      现金     上付       月结        欠款      运费
    ------     ----------- -----    ----       ----        ----      ----
    090412001  3           30.00                                   0.00                                    0.00                                    0.00                                    30.00
    090412001  3           30.00                                   0.00                                    0.00                                    0.00                                    30.00
    090412002  8           0.00                                    10.00                                   10.00                                   0.00                                    20.00
    090412003  8           0.00                                    10.00                                   10.00                                   0.00                                    20.00
    090412004  3           0.00                                    0.00                                    0.00  
    */