一个表里面的数据是以下形式: 订单号 结算金额 教材费 学费
0000001 100 null null
0000002 100 null null
0000003 null 100 50
0000004 null 100 50
0000005 null 100 50
0000006 100 100 null 我需要把 结算金额、教材费、学费每个总额统计出来,那位大虾帮帮忙?
0000001 100 null null
0000002 100 null null
0000003 null 100 50
0000004 null 100 50
0000005 null 100 50
0000006 100 100 null 我需要把 结算金额、教材费、学费每个总额统计出来,那位大虾帮帮忙?
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 個資料列受到影響)
*/
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 個資料列受到影響)
*/
select SUM(isnull(结算金额,0))as'总结算金额',SUM(isnull(教材费,0))as'总教材费',SUM(isnull(学费,0))as'总学费' from T_order
SELECT SUM(A),SUM(B).. FROM TB
select SUM(isnull(a.结算金额,0))as'总结算金额',SUM(isnull(a.教材费,0))as'总教材费',SUM(isnull(a.学费,0))as'总学费' from
(select 结算金额,教材费,学费 from test) a