关于PIVOT的用法?

siugwan 2006-08-28 12:01:15
select [200606],[200607]
from settlement as spf
pivot (sum(xxf) for period in ([200606],[200607]) ) as pvt

得出的结果是
[200606] [200607]
NULL 456
NULL 123
111 NULL
222 NULL

怎么不是这样的?
[200606] [200607]
111 456
222 123
...全文
380 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
siugwan 2006-08-28
  • 打赏
  • 举报
回复
解决了,谢谢
zjcxc 元老 2006-08-28
  • 打赏
  • 举报
回复
pivot根据除 聚合函数/fo xx 之外的列进行分组.

所以, 不需要出现在结果中, 也不需要做为分组依据的列要过滤掉(一般用子查询)
zjcxc 元老 2006-08-28
  • 打赏
  • 举报
回复
select [200606],[200607]
from( -- 不要包含多余的列
select xxf, period from settlement
) as spf
pivot (sum(xxf) for period in ([200606],[200607]) ) as pvt
OracleRoob 2006-08-28
  • 打赏
  • 举报
回复
2005还没开始用
siugwan 2006-08-28
  • 打赏
  • 举报
回复
我用的是SQL 2005啊,SQL 2005 新增了PIVOT 和 UNPIVOT 语法了
OracleRoob 2006-08-28
  • 打赏
  • 举报
回复
楼主用的不是SQL Server吧?

pivot 是Access中Jet-SQL的保留字。

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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