2016-11-29 15 views
1

現在、以下の図のように2つのテーブルがあります。join updateまたはinsert SQLサーバーを使用して別のテーブルから1つのテーブルに挿入

最初のテーブルがbottleと呼ばれている:

enter image description here

第二のテーブルがcasesと呼ばれている:

enter image description here

私はCASE_ID = 0瓶のテーブルに挿入しようとしていますケーステーブル(case_id = 100,100,103,103など)に見られる値。それらは2つの別々のテーブルであり、私はNULL値を作成せずにそれらに参加しようとしています。

挿入、結合、または更新を使用する必要があるかどうかを教えてください。私は手動で行いますが、これらのデータポイントはPLCから供給されており、以下に示すすべてのデータポイント以上に多くのデータポイントが存在します。

+0

? – Buddi

+0

「私はそれらに加わることを試みています」...明示的な結合列がないので、これらの新しい値をもたらすためにどのようなロジックを使用したいですか? –

答えて

0

UPDATEを実行する明示的な結合列はありません。ただし、各テーブルの行番号の値を特定の順序で結合して作成することができます。以下のクエリでは、bottle_idを使用してbottleテーブルの行番号を、case_idを使用してcasesテーブルの行番号を指定します。

UPDATE t1 
SET t1.case_id = t2.case_id 
FROM 
(
    SELECT t.*, ROW_NUMBER() OVER (ORDER BY bottle_id) rowId 
    FROM bottle t 
) t1 
INNER JOIN 
(
    SELECT t.*, ROW_NUMBER() OVER (ORDER BY case_id) rowId 
    cases t 
) t2 
    ON t1.rowId = t2.rowId 

これは(一部の列は省略)のように見えるbottleに出力を与える必要があります:あなたはアウト画像を使用してテーブル構造を投稿することができます

bottle_id  case_id 
1    100 
2    100 
3    103 
4    103 
5    104 
6    104 
7    105 
8    105 
関連する問題