2016-07-12 5 views
0

SQLで水平テーブルと垂直テーブルを結合する最良の方法は何ですか?SQLで垂直テーブルと水平テーブルを結合する最も良い方法

enter image description here

そして、このようなものです別のテーブル::

Table 2

私はこのようなテーブルを持っている

を(つまり、この場合には、両方のテーブルのアイテムIDを結合します)

理想的には、私はそれらを次のように整理したいと考えています:

OrderID ItemID ClientID説明数量価格

OrderIDに基づいてこれら2つの異なるタイプのテーブルを結合する最も簡単な方法は何でしょうか?

今はアイテムテーブルを垂直から水平に変換してから2つのテーブルを結合しています。しかし、それは多くのコード行になります。単純な方法があるかどうかは疑問です。ありがとう!

+0

はちょうどあなたの項目テーブルに3回参加ください )PIVの要素FOR ON instanの 'element = 'description''を使ってあなたのON句では、 – JNevill

答えて

0

複数の内部には、SQLサーバーにピボットを使用することができます

select a.OrderID, a.ItemID, a.ClientID, b.Description c.Quantity d.Price 
from table2 as a 
inner join table1 as b on a.itemID = b.itemID and b.element = 'Description' 
inner join table1 as c on a.itemID = c.itemID and c.element = 'Quantity' 
inner join table1 as d on a.itemID = d.itemID and d.element = 'Price' 
0

垂直のテーブルに参加します。以下のコードスニペットを参照してください。

SELECT受注、アイテムID、クライアントID、 [説明]、数量、価格 ( SELECT受注、i.ItemID、クライアントID、i.elementから、私は インナーオーダーA JOIN項目FROM i.details i.itemid = a.itemid )SRC PIVOT ( MAX(詳細)([説明]、数量、価格)

関連する問題