注册 登录
编程论坛 SQL Server论坛

SQL 2005 中的PIVOT问题

yiyaozjk 发布于 2014-03-24 20:19, 660 次点击
表WEEK_INCOME(WEEK VARCHAR(10),INCOME DECIMAL)

SELECT [星期一],[星期二],[星期三],[星期四],[星期五],[星期六],[星期日]
FROM WEEK_INCOME
PIVOT
( SUM(INCOME) for [week] in([星期一],[星期二],[星期三],[星期四],[星期五],[星期六],[星期日])
)TBL
用以上正确 ,但我想拓展,假如,假设week列 是一个我不知道到底多少个值的列,怎么办?我用下在语句去替代,
select WEEK as '姓名'  from WEEK_INCOME
pivot(sum(INCOME) for week in ( select [week] from WEEK_INCOME)) as TBL

错误:消息 156,级别 15,状态 1,第 2 行
关键字 'select' 附近有语法错误。
消息 102,级别 15,状态 1,第 2 行
')' 附近有语法错误。

SQL 2005 中如何解决上述问题
8 回复
#2
yiyaozjk2014-03-25 09:36
can you help me?
#3
owenlu19812014-03-25 10:47
试试这个
TRANSFORM Sum([INCOME]) Select [姓名] from WEEK_INCOME Group By [姓名] Order by [姓名] Pivot [Week]
#4
yiyaozjk2014-03-25 16:17
以下是引用owenlu1981在2014-3-25 10:47:21的发言:

试试这个
TRANSFORM Sum() Select [姓名] from WEEK_INCOME Group By [姓名] Order by [姓名] Pivot [Week]
   版主,不行、、提示:关键字 'pivot' 附近有语法错误。
#5
owenlu19812014-03-25 17:04
数据库转成EXCEL发上来看看
#6
tlliqi2014-03-26 07:47
发个数据瞧瞧
#7
volte2014-03-26 17:37
为啥不用存储过程去,大事化小,小事化了的去解决???
#8
yiyaozjk2014-03-29 17:48
回复 5楼 owenlu1981
数据库转成EXCEL发上来看看

不是转成EXCEL, 我是想让它直接在SQL进行查询的分列转成行的 。。。所以我怎么传数据
#9
owenlu19812014-03-29 19:54
把原始数据放上来看看......
1