求一查询语句

lmj2003 2006-06-28 05:36:31

费用名称 费用月份 费用

水费 1 100
水费 2 200
水费 3 300
水费 4 500
水费 5 700
...
水费 12 700

需要查询出如下结果
费用名称 一月份 二月份 ... 十二月份
水费 100 200 700

请问SQL怎么写?
...全文
99 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
LouisXIV 2006-06-28
  • 打赏
  • 举报
回复
散分童子?:)
paoluo 2006-06-28
  • 打赏
  • 举报
回复
Select
费用名称,
SUM(Case 费用月份 When 1 Then 费用 Else 0 End) As [1月份],
SUM(Case 费用月份 When 2 Then 费用 Else 0 End) As [2月份],
SUM(Case 费用月份 When 3 Then 费用 Else 0 End) As [3月份],
SUM(Case 费用月份 When 4 Then 费用 Else 0 End) As [4月份],
SUM(Case 费用月份 When 5 Then 费用 Else 0 End) As [5月份],
SUM(Case 费用月份 When 6 Then 费用 Else 0 End) As [6月份],
SUM(Case 费用月份 When 7 Then 费用 Else 0 End) As [7月份],
SUM(Case 费用月份 When 8 Then 费用 Else 0 End) As [8月份],
SUM(Case 费用月份 When 9 Then 费用 Else 0 End) As [9月份],
SUM(Case 费用月份 When 10 Then 费用 Else 0 End) As [10月份],
SUM(Case 费用月份 When 11 Then 费用 Else 0 End) As [11月份],
SUM(Case 费用月份 When 12 Then 费用 Else 0 End) As [12月份]
From 表
Group By 费用名称


--或者動態語句
Declare @S Varchar(1000)
Set @S=''
Select @S=@S+ ',['+费用月份+'月份]= SUM(Case 费用月份 When '''+费用月份+''' Then 费用 Else 0 End) ' From 表 Order By 费用月份
Set @S='Select 费用名称'+@S+' From 表 Group By 费用名称 Order By 费用名称'
EXEC (@S)

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧