jimmyxing

永远进取

博客园 首页 新随笔 联系 订阅 管理

先有表A:
字段为:
Id,ItemName, Charge(金额)
1   收费1    10
1   收费2    20
2   收费2    10
2   收费3    15
3   收费1    20
3   收费3    10
.
.
.
重要:收费项目(ItemName)不固定
我想得到的结果如下:
Id   收费1    收费2  收费3 
1    10        20     0
2    0         10     15
3    20        0      10

请问如何写SQL语句?


declare @s varchar(8000)
set @s=''
select @s=@s+',['+rtrim(ItemName)+']=sum(case ItemName when '''+rtrim(ItemName)+''' then Charge else 0 end)'
from 表A group by ItemName
exec('select Id'+@s+' from 表A group by Id')

posted on 2005-04-03 00:22  永远进取  阅读(148)  评论(0)    收藏  举报