2017-05-06 8 views
0

解決できない問題があります。値を2列から行に変換する

私は(NOT本、改訂された結果の画像を見て)出力は次のようになりたい、この

table1

のようなテーブルがあります。

result

は、このですT-SQLでは可能ですか?多分Excelで?

140のカテゴリと約があります。 60.000行。

編集:

ちょうど明確にする。私はすべてのカテゴリの列に金額の欄が必要です。だから140のカテゴリがあれば、私は140の量の列が欲しい。特定のカテゴリに金額がない場合は、nullまたはamount = 0になります。

EDIT2: 改訂結果: revised

+0

これがあなたの望むものだと確信していますか?これは、カテゴリが別々の列に表示される単純なピボットテーブルの場合には非常に典型的なケースです。だから、値132の列 'cat1'、値413の列' cat2'、値1245の列 'cat3'などがあります。しかし期待される結果の画像は、別の「金額」列が必要です。これらの列には何を表示しますか? – Ralph

+0

こんにちはRalph。私は、各カテゴリの列に金額の欄が必要です。だから140のカテゴリがあるなら、私は140の金額を水平にしたい。 – uba2012

+0

しかし、あなたは 'cat2'に対して1つの列を表示しています。だから、その列には 'cat2'の値が期待されます。したがって、ピボットテーブルは 'cat2'カラムに値132を表示します。しかし' cat2'の隣の 'amount'カラムには何を表示しますか?もう一度、代わりにこのようなソリューションを探していないことを確認してください:http://stackoverflow.com/questions/15931607/convert-rows-to-columns-using-pivot-in-sql-serverまたはこのhttps ://technet.microsoft.com/en-us/library/ms177410(v = sql.105).aspx – Ralph

答えて

0
私はちょうど2つのカテゴリでサンプルを与えた..あなたがあなたのテーブルを使用して完全なリストを生成することができます列に生成するために、ピボットと動的クエリを使用することができます

select * from #yourcustomer 
pivot (sum(amount) for category_name in ([cat1],[cat2] --,all categories list generated based on yourtable.......... 
)) p 
関連する問題