gpt4 book ai didi

sql - 带 MONTH() 的 PIVOT

转载 作者:行者123 更新时间:2023-12-04 09:27:56 25 4
gpt4 key购买 nike

如何为日期为月份的列进行透视?

例子:

数据:

|-----------------------------------|
| def_kstnr | def_zeit | def_datum |
|-----------------------------------|
| 100 | 3.2 | 2011-11-02 |
| 110 | 2.8 | 2011-02-03 |
| 120 | 5.4 | 2011-11-04 |
| 130 | 2.4 | 2011-08-05 |
| 140 | 4.9 | 2011-09-06 |
| 150 | 1.5 | 2011-10-07 |
| 160 | 2.6 | 2011-12-08 |
|-----------------------------------|

查询:
SELECT
def_kstnr,
[1] AS Jan,
[2] AS Feb,
[3] AS Mrz,
[4] AS Apr,
[5] AS Mai,
[6] AS Jun,
[7] AS Jul,
[8] AS Aug,
[9] AS Sep,
[10] AS Okt,
[11] AS Nov,
[12] AS Dez
FROM
dbo.def
PIVOT
(
SUM(def_zeit)
FOR MONTH(def_datum)
IN ( [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12] )
) AS pvtMonth
GROUP BY
dbo.def.def_kstnr,
MONTH(def_datum)

我收到此错误:

Incorrect syntax near '('.



(带有“FOR MONTH(def_datum)”的行)

结果应如下所示:
|-----------------------------------------------------------------------------------|
| def_kstnr | Jan | Feb | Mrz | Apr | Mai | Jun | Jul | Aug | Sep | Okt | Nov | Dez |
|-----------------------------------------------------------------------------------|
| 100 | | | | | | | | | | | 3.2 | |
| 110 | | 2.8 | | | | | | | | | | |
...
|-----------------------------------------------------------------------------------|

谢谢 :)

最佳答案

如果您将 Month 函数移动到先前的源表中,PIVOT 将起作用。请注意,我认为您不需要按照支点对事物进行分组。

SELECT
def_kstnr,
[1] AS Jan,
[2] AS Feb,
[3] AS Mrz,
[4] AS Apr,
[5] AS Mai,
[6] AS Jun,
[7] AS Jul,
[8] AS Aug,
[9] AS Sep,
[10] AS Okt,
[11] AS Nov,
[12] AS Dez
FROM
(Select
def_kstnr,
def_zeit,
MONTH(def_datum) as TMonth
from
dbo.def) source
PIVOT
(
SUM(def_zeit)
FOR TMonth
IN ( [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12] )
) AS pvtMonth

关于sql - 带 MONTH() 的 PIVOT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7145694/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com