SQL Server 2016を実行していますが、次の単純なT-SQLクエリがあり、次の出力が得られます。
クエリ:
SELECT * from ExtrasViewTable
出力:
ID Property F&B SPA TotalExp Mth
1 ABC 100 0 100 2014-09-01
2 XYZ 50 20 70 2014-10-01
出力を次のように変更したいと思います。
ID Property Mth ExpCat ExpCatAmt
1 ABC 2014-09-01 F&B 100
1 ABC 2014-09-01 SPA 0
1 ABC 2014-09-01 TotalExp 100
2 XYZ 2014-10-01 F&B 50
2 XYZ 2014-10-01 SPA 20
2 XYZ 2014-10-01 TotalExp 70
これを実現するための正しいT-SQLコードを見つけるのに苦労しています。いくつかの基本的なピボット操作を試しましたが、間違っていました。
UnPivotを使用できます。
DECLARE @ExtrasViewTable TABLE (
ID INT
,Property VARCHAR(10)
,[F&B] INT
,SPA INT
,TotalExp INT
,Mth DATE
)
insert into @ExtrasViewTable values
(1,'ABC',100, 0,100,'2014-09-01')
,(2,'XYZ', 50,20, 70,'2014-10-01')
SELECT ID,Property,Mth,Expcat,Expcatamt
FROM @ExtrasViewTable
unpivot(Expcatamt FOR Expcat IN (
[F&B]
,SPA
,TotalExp
)) unpiv;
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加