Customer
customer_id | customer_name | customer_city | customer_number
---------------------------------------------------------------
1 | john | sanjose | 978234
2 | chris | newyork | 293
3 | mary | madrid | 342943
4 | tom | bangkok | 8627093
---------------------------------------------------------------
Data
data_id | data_name | data_city | data_number | data_cust_id | customer_id
--------------------------------------------------------------------------------------------
1 | abc | xyz | 990 | 1 | NULL
2 | john | sanjose | 978234 | 1 | NULL
3 | mary | madrid | 8627093 | 3 | NULL
4 | tom | LA | 7729 | 4 | NULL
ActionType
action_id | action_description
-----------------------------------
1 | customer_name
2 | customer_number
3 | customer_city
DataToAction
id | data_id | action_id
--------------------------
1 | 1 | 1
2 | 1 | 2
4 | 2 | 1
5 | 2 | 2
6 | 2 | 3
7 | 3 | 1
8 | 3 | 2
9 | 4 | 1
4つのテーブルがあります -
- 顧客 - 顧客データがあります
- データ - 外部ソースから取得した生データ (顧客データなどを含む)
- ActionType - 結合条件で使用される列名があります
- DataToAction - データ テーブルの生データ行ごとに、結合で使用される列をここで指定します。
目的- 「データ」テーブルに customer_id を入力する。私はこのようなものが必要です
UPDATE D
SET D.customer_id = C.customer_id
FROM Data D
INNER JOIN Customer C on D.data_cust_id = C.customer_id
WHERE *("GET THE COLUMNS TO BE MATCHED FROM DATATOACTION TABLE AND USE HERE")*
たとえば、データ ID 1 の場合は、customer_name と customer_number に基づいて customer_id を更新し、データ ID 2 の場合は、customer_name、customer_number と customer_city に基づいて customer_id を更新します。
一致する列が別のテーブルで指定されている各行の where 句で動的な列条件を適用するにはどうすればよいですか。