【发布时间】:2020-02-17 10:01:44
【问题描述】:
例子:
数据:
GraphDetails
|----------------------------------------------------------|
| Id GoalId Definition Rating DateCrated |
| -------------------------------------------------------- |
| 1 2 Zero Infra Back Log 100 2020-02-05 |
| 2 2 Happy Customers 95 2020-02-05 |
| 3 2 Complete All Projects 100 2020-02-05 |
| 4 1 Zero Infra Back Log 100 2020-02-05 |
| 5 1 Happy Customers 98 2020-02-05 |
| 6 1 Complete All Projects 100 2020-02-05 |
|----------------------------------------------------------|
查询:
SELECT
[1] AS Jan,
[2] AS Feb,
[3] AS Mar,
[4] AS Apr,
[5] AS May,
[6] AS Jun,
[7] AS Jul,
[8] AS Aug,
[9] AS Sep,
[10] AS Oct,
[11] AS Nov,
[12] AS [Dec]
FROM
(Select Id, MONTH(DateRecorded) as TMonth
FROM GraphDetails
WHERE YEAR(DateRecorded) = 2020 AND GoalId = 1
) source
PIVOT
( Definition, Rating
FOR TMonth
IN ( [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12] )
) AS pvtMonth
我收到此错误:
',' 附近的语法不正确。
符合“定义、评级”
结果应如下所示:
|-------------------------------------------------------------------------------------------------|
| Definition | Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec |
|-------------------------------------------------------------------------------------------------|
| Zero Infra Back Log | 0 | 100 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| Happy Customers | 0 | 98 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| Complete All Projects | 0 | 100 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
|-------------------------------------------------------------------------------------------------|
这可能吗? 任何帮助,请!
谢谢!
*以上代码基于PIVOT with MONTH()。
【问题讨论】:
-
您正在尝试
PIVOT2 列:PIVOT ( Definition, Rating...。PIVOT运算符不支持超过 1 列。看起来你会更好Cross-Tab。
标签: sql sql-server tsql group-by pivot