0
InvoiceDocValue       OppoFWDocID    dtadded                    ddQuarter
184046.19             166262         2016-01-04 16:09:06.000    1
31047.05              166262         2016-05-06 13:50:47.000    2
5160.00               169328         2016-09-08 13:39:35.000    3
59931.48              169987         2016-10-07 14:11:33.000    4
98989.9               166345         2016-02-07 15:09:34.000    1
76543.9               189873         2016-02-07 05:07:54.000    1

このピボットをこのテーブルに追加したいので、列は次のようになります。

OppoFWDocID     1            2          3         4
166262          184046.19    31047.05   0         0
169987          0            0          0         59931.48
169328          0            0          5160.00   0
166345          98989.9      0          0         0
189873          76543.9      0          0         0

InvoiceDocValue列 1、2、3、および 4 には、その四半期のすべての合計が表示されます。

4

4 に答える 4

1

以下のクエリを使用できます。

SELECT (T.OppoFWDocID) OppoFWDocID,
SUM(DECODE(T.ddQuarter,1,T.InvoiceDocValue)) 1,
SUM(DECODE(T.ddQuarter,2,T.InvoiceDocValue)) 2,
SUM(DECODE(T.ddQuarter,3,T.InvoiceDocValue)) 3,
SUM(DECODE(T.ddQuarter,4,T.InvoiceDocValue)) 4
FROM table_name T
GROUP BY T.OppoFWDocID
于 2016-10-07T16:04:55.287 に答える
0

固定数の列があると仮定すると、 SUMCASE、およびGROUP BYを使用できます。

SELECT OppoFWDocID
    ,SUM(CASE WHEN ddQuarter = '1' THEN InvoiceDocValue ELSE 0 END) AS '1'
    ,SUM(CASE WHEN ddQuarter = '2' THEN InvoiceDocValue ELSE 0 END) AS '2'
    ,SUM(CASE WHEN ddQuarter = '3' THEN InvoiceDocValue ELSE 0 END) AS '3'
    ,SUM(CASE WHEN ddQuarter = '4' THEN InvoiceDocValue ELSE 0 END) AS '4'
FROM #TABLE GROUP BY OppoFWDocID
于 2016-10-07T15:57:26.627 に答える