クエリ (SQL Server 2012) で次のことを実行したいと思います: 共通のリンク可能なレコードがないテーブルから別のテーブルにデータを更新します (結合してから更新することはできません)。唯一の類似点は、テーブルが同じ構造であることです
シンプルにする(100以上のアイテムを転送する)
- 表 1a: KEY、TagName <-- a.TagName は 'Tag1' と同じ
- 表 1b: DS_KEY、Make、Model <- 更新データのソース
- 表 2a: KEY、TagName <-- b.TagName は 'Tag2' と同じ
- 表 2b: DS_KEY、Make、Model <- 更新データの宛先
それで、
- 表 1a: 123、Tag1
- 表 1b: 123、テスト 1、モデル 1
- 表 2a: 456、Tag2
- 表 2b: 456、ヌル、ヌル
私が持っているもの:
--Query 1
SELECT KEY, TagName, DS_KEY, Make, Model
FROM Table1a
JOIN Table1b
ON Table1a.KEY = Table1b.DS_KEY
Where TagName = 'Tag1'
結果(123、タグ1、123、テスト1、モデル1)
--Query 2
SELECT KEY, TagName, DS_KEY, Make, Model
FROM Table2a
JOIN Table2b
ON Table2a.KEY = Table2b.DS_KEY
Where TagName = 'Tag2'
RESULT(456、Tag2、456、NULL、NULL)
作業したいミックスを返します。この時点から Table2b を更新する方法に困惑しています。それらに参加できません (少なくとも方法がわかりません!)。もしかしてユニオンオール?する必要がないことを本当に願っています
Update Table2b
Set Table2b.Make =
(SELECT Make FROM Table1a
JOIN Table1b
ON Table1a.KEY = Table1b.DS_KEY)
FROM Table2a
JOIN Table2b
ON Table2a.KEY = Table2b.DS_KEY
Where Table2a.TagName = 'Tag2'
私が言ったように、私は約 100 のレコードを設定する必要がありますが、もっと簡単な方法が必要なようです。事前に感謝し、質問を簡単にするために言い換えようとしているので、構文エラーを許してください(そして私は疲れています!):)