以下のコードが動作し、OEMPartNumber を元に戻しています。私の問題は OEMSubNumber です。表でわかるように、私が働いたSQLで行ったように、OEMSubNumberを一致させることはできません。OEMSubNumber を OEMPartNumber に一致させてから、OEM Item に戻す必要があります。どうすればよいですか?
動作しているSQL
UPDATE a
SET a.AMIPartNumber = c.Item
FROM imports as a
INNER JOIN jdsubs as b
ON a.OEMPartNumber = b.OEMPartNumber
INNER JOIN amipartnumbers as c
ON b.OEMPartNumber = c.OEMItem
これは私のテーブルレイアウトです
imports
----------------
OEMPartNumber | AMIPartNumber
AR77530 |
AR12345 |
JDSubs
---------------------------
OEMPartNumer | OEMSubNumber
AR65123 | AR77530
AR12345 | AR56242
AMI
---------------------------
Item | OEMItem | Description
AMAR65123 | AR65123 | Axle
AMAR56242 | AR12345 | Spindle
アップデート
私はこれがうまくいきました!
UPDATE imports
SET imports.AMIPartNumber = coalesce(apn.Item,asn.Item)
FROM imports as I
LEFT JOIN jdsubs as PN ON I.OEMPartNumber = PN.OEMPartNumer
LEFT JOIN amipartnumbers as APN ON PN.OEMPartNumer = APN.OEMItem
LEFT JOIN jdsubs as SN ON I.OEMPartNumber = SN.OEMSubNumber
LEFT JOIN amipartnumbers as ASN ON SN.OEMPartNumer = ASN.OEMItem
;
select
*
from imports