一个表里面的数据是以下形式:  订单号 结算金额 教材费 学费
 0000001   100     null  null
 0000002   100     null  null
 0000003   null    100   50 
 0000004   null    100   50 
 0000005   null    100   50 
 0000006   100     100   null 我需要把 结算金额、教材费、学费每个总额统计出来,那位大虾帮帮忙?

解决方案 »

  1.   

    if object_id('[tb]') is not null drop table [tb]
    go
    create table [tb] (订单号 nvarchar(14),结算金额 int,教材费 int,学费 int)
    insert into [tb]
    select '0000001',100,null,null union all
    select '0000002',100,null,null union all
    select '0000003',null,100,50 union all
    select '0000004',null,100,50 union all
    select '0000005',null,100,50 union all
    select '0000006',100,100,nullselect * from [tb]
    union all
    select 'ALL',sum(结算金额),sum(教材费),sum(学费)from tb
    /*
    订单号            结算金额        教材费         学费
    -------------- ----------- ----------- -----------
    0000001        100         NULL        NULL
    0000002        100         NULL        NULL
    0000003        NULL        100         50
    0000004        NULL        100         50
    0000005        NULL        100         50
    0000006        100         100         NULL
    ALL            300         400         150
    警告: 彙總或其他 SET 作業已刪除 Null 值。(7 個資料列受到影響)
    */
      

  2.   

    if object_id('[tb]') is not null drop table [tb]
    go
    create table [tb] (订单号 nvarchar(14),结算金额 int,教材费 int,学费 int)
    insert into [tb]
    select '0000001',100,null,null union all
    select '0000002',100,null,null union all
    select '0000003',null,100,50 union all
    select '0000004',null,100,50 union all
    select '0000005',null,100,50 union all
    select '0000006',100,100,nullselect *, isnull(结算金额,0)+isnull(教材费,0)+isnull(学费,0) as [ALL] from [tb]
    /*
    订单号            结算金额        教材费         学费          ALL
    -------------- ----------- ----------- ----------- -----------
    0000001        100         NULL        NULL        100
    0000002        100         NULL        NULL        100
    0000003        NULL        100         50          150
    0000004        NULL        100         50          150
    0000005        NULL        100         50          150
    0000006        100         100         NULL        200(6 個資料列受到影響)
    */
      

  3.   


    select SUM(isnull(结算金额,0))as'总结算金额',SUM(isnull(教材费,0))as'总教材费',SUM(isnull(学费,0))as'总学费' from T_order
      

  4.   

    select sum(结算金额) as 结算金额,sum(教材费) as 教材费,sum(学费) as 学费 from tableName
      

  5.   

    那你应该在连接时就应该用统计了吧,
    SELECT SUM(A),SUM(B).. FROM TB
      

  6.   

    你可以把现在关联出来的数据当成一个表即可,例如:
       select SUM(isnull(a.结算金额,0))as'总结算金额',SUM(isnull(a.教材费,0))as'总教材费',SUM(isnull(a.学费,0))as'总学费' from 
    (select 结算金额,教材费,学费 from test) a