首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求一Sql语句 请高手帮忙 50分送上~解决方案

2012-01-19 
求一Sql语句请高手帮忙 50分送上~~~表一id(自增)交易id(int)月份(int)月费用(int)11320021430031516041632

求一Sql语句 请高手帮忙 50分送上~~~
表一 id(自增) 交易id(int) 月份(int) 月费用(int)
  1 1 3 200
  2 1 4 300
  3 1 5 160
  4 1 6 320
  5 2 4 100
  6 2 5 490
  7 2 6 200
  8 4 6 1000
  9 4 8 800

  表二 交易id(int) 经手人id
  1 38
  2 99
  4 38

现在要用sql语句得出这样的结果  
   
  经手人id 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 
  38 0 0 200 300 160 1320 0 800 0 0 0 0
  99 0 0 0 100 490 200 0 0 0 0 0 0

在线等 高手受累吧 感激不尽

[解决办法]
select 经手人id,
sum(case 月份 when 1 then 月费用 else 0) '1月',
sum(case 月份 when 2 then 月费用 else 0) '2月',
sum(case 月份 when 3 then 月费用 else 0) '3月',
sum(case 月份 when 4 then 月费用 else 0) '4月',
sum(case 月份 when 5 then 月费用 else 0) '5月',
sum(case 月份 when 6 then 月费用 else 0) '6月',
sum(case 月份 when 7 then 月费用 else 0) '7月',
sum(case 月份 when 8 then 月费用 else 0) '8月',
sum(case 月份 when 9 then 月费用 else 0) '9月',
sum(case 月份 when 10 then 月费用 else 0) '10月',
sum(case 月份 when 11 then 月费用 else 0) '11月',
sum(case 月份 when 12 then 月费用 else 0) '12月'
from
(
select b.经手人id,a.月份,a.月费用 from 表一 a,表二 b where a.交易id = b.交易id
) t
group by 经手人id
[解决办法]
select
b.经手人id, 
[01月]=sum(case a.月份 when 1 then a.月费用 else 0 end),
[02月]=sum(case a.月份 when 2 then a.月费用 else 0 end),
[03月]=sum(case a.月份 when 3 then a.月费用 else 0 end),
[04月]=sum(case a.月份 when 4 then a.月费用 else 0 end),
[05月]=sum(case a.月份 when 5 then a.月费用 else 0 end),
[06月]=sum(case a.月份 when 6 then a.月费用 else 0 end),
[07月]=sum(case a.月份 when 7 then a.月费用 else 0 end),
[08月]=sum(case a.月份 when 8 then a.月费用 else 0 end),
[09月]=sum(case a.月份 when 9 then a.月费用 else 0 end),
[10月]=sum(case a.月份 when 10 then a.月费用 else 0 end),
[11月]=sum(case a.月份 when 11 then a.月费用 else 0 end),
[12月]=sum(case a.月份 when 12 then a.月费用 else 0 end)
from
表二 a,
表一 b
where
a.交易id=b.交易id
group by
b.经手人id
order by
b.经手人id

热点排行