2017-05-12 2 views
1

MSSQLで次のような問題があります。テーブルが4つあります。行を列に変換してデータのペアを保持する

例テーブル:私はPIVOTを使用してみましたが、それが原因で異なる値の複数行を返していました

1 | a | red | 5 | b | green | 10 
2 | a | orange | 40 | b | yellow | 35 
3 | a | blue | 6 | b | cyan | 9 

JunctionId | type| color| value 
1 | a | red | 5| 
1 | b | green | 10| 
2 | a | orange | 40| 
2 | b | yellow | 35| 
3 | a | blue | 6| 
3 | b | cyan | 9| 

今、私は次のような結果が欲しいです。私はセルフジョインを使用しますが、私は12種類の 'タイプ'を持っています。どんなアイデアも大歓迎です!

(注:私は、このstackoverflowのテーブルのブツを使用することはできません...申し訳ありません)

+0

https://stackoverflow.com/editing-help – jarlh

答えて

1

セルフ時間

select a1.junctionid, 
     a1.type as a_type, 
     a1.color as a_color, 
     a1.value as a_value, 
     a2.type as b_type, 
     a2.color as b_color, 
     a2.value as b_value 
from MyTable a1 
inner join MyTable a2 
on a1.junctionid = a2.junctionid 
where a1.type = 'a' 
and a2.type = 'b' 
+0

いや、しかしなどに参加します私は12種類のタイプがあるので、私は本当に自己結合を使いたくないと言った。しかし、私はプロシージャを使用することができないので、私は行くように見える:それでも、あなたの答えをありがとう。 – Llamadmiral

関連する問題