【发布时间】:2016-01-22 17:14:01
【问题描述】:
我有一个 SQL Server 表和一个查询,它会生成一个带有两个数据透视列的数据透视表。以前它只适用于一个数据透视列 (pvt1)。
SELECT
MIN([Created Date]),
MIN([2]) AS [2],
MIN([4]) AS [4],
MIN([12]) AS [12],
MIN([18]) AS [18],
MIN([47]) AS [47],
MIN([88]) AS [88],
MIN([982]) AS [982],
MIN([1033]) AS [1033],
MIN([2360]) AS [2360],
MIN([3759]) AS [3759],
MIN([3974]) AS [3974],
MIN([5586]) AS [5586]
FROM
(SELECT
year(udp.CreatedDate) AS "Created Date",
MAX(udp.Participant) AS "Participant",
MAX(udp.LastModifiedDate) AS "Last Modified Date",
MAX(udp.Client) AS "Client"
FROM
UDP_Table AS udp
WHERE
1=1
GROUP BY
year(udp.CreatedDate)) AS source
PIVOT (
MAX([Last Modified Date])
FOR
[Participant] IN ([2], [4], [12], [18], [47], [88])
)
as pvt1
PIVOT (
MAX([Last Modified Date])
FOR
[Client] IN ([982], [1033], [2360], [3759], [3974], [5586])
)
as pvt2
GROUP BY
[Created Date]
ORDER BY
[Created Date] asc
结果是:
[S0001][207] 列名“上次修改日期”无效。
奇怪的是,当我尝试这个与我的结构相同的示例表和查询(见下面的链接)时,它可以工作。
http://pratchev.blogspot.de/2009/01/pivoting-on-multiple-columns.html
我的查询有什么问题?
【问题讨论】:
标签: sql-server pivot multiple-columns