0

次のようなSampleという名前のテーブルがあります。

ここに画像の説明を入力

次のような出力が必要ですここに画像の説明を入力

このために、次のクエリを作成しました。

SELECT YEAR/MONTH, 1L,3L,4L,6L,8L
    FROM (
    SELECT PANEL, LAYERCOUNT, MONTHS
    FROM Sample) up
    PIVOT (SUM(Count) FOR CountOFL IN (1L,3L,4L,6L,8L)) AS pvt
    ORDER BY YEAR/MONTH

しかし、「1」の近くで構文が正しくありませんというエラーが発生します。

ここに画像の説明を入力

4

1 に答える 1

3

指定したテーブル構造の場合、このクエリは CountOFL 列でピボットされたテーブルを返します。

SELECT YEARMONTH, [1L],[3L],[4L],[6L],[8L]
FROM Sample
PIVOT (SUM(RecordCount) FOR CountOFL IN ([1L],[3L],[4L],[6L],[8L])) AS pvt
ORDER BY YEARMONTH

結果:

YEARMONTH                        1L          3L          4L          6L          8L
-------------------------------- ----------- ----------- ----------- ----------- -----------
Dec2011                          2           NULL        NULL        NULL        NULL
Jan2011                          NULL        4           NULL        NULL        NULL
Jul2012                          2           NULL        5           NULL        NULL
Jun2011                          NULL        NULL        NULL        NULL        1
Jun2012                          2           NULL        NULL        1           NULL
May2011                          NULL        5           NULL        NULL        NULL
Sep2012                          NULL        1           NULL        NULL        NULL

そのため、PIVOTed 列の値を角括弧で囲む必要があります。

于 2012-10-24T07:12:27.230 に答える