で子テーブルに親テーブルから非重複データの挿入しますテーブルから しかし、私のシナリオB列のレコードのとき:は、私は2つのテーブルを持っているSQL Server 2008の
TENANT_ID,
CUSTOMER_PART_NUMBER,
SHIPPING_ID,
EFFECTIVE_DATE
がテーブルAに同じですが、私はそれがテーブルB に挿入されますしたくない私は、クエリを使用して試してみました:
INSERT INTO OSUSR_1SV_QAD_PO_DATA
(TENANT_ID,
CUSTOMER_PART_NUMBER,
LEAR_PART_NUMBER,
SHIPPING_ID,
CUSTOMER_NAME,
PROGRAM_NAME,
EFFECTIVE_DATE,
END_DATE,
CHANGE_ID,
PO_NUMBER,
PO_PRICE)
SELECT
TENANT_ID,
CUSTOMER_PART_NUMBER,
LEAR_PART_NUMBER,
SHIPPING_ID,
CUSTOMER_NAME,
PROGRAM_NAME,
EFFECTIVE_DATE,
END_DATE,
CHANGE_ID,
PO_NUMBER,
PO_PRICE
FROM
OSUSR_1SV_STAGING_FTP A
WHERE
not exists
(SELECT TENANT_ID,
CUSTOMER_PART_NUMBER,
LEAR_PART_NUMBER,
SHIPPING_ID,
CUSTOMER_NAME,
PROGRAM_NAME,
EFFECTIVE_DATE,
END_DATE,
CHANGE_ID,
PO_NUMBER,
PO_PRICE
FROM OSUSR_1SV_QAD_PO_DATA B
WHERE
A.TENANT_ID = B.TENANT_ID
and A.CUSTOMER_PART_NUMBER = A.CUSTOMER_PART_NUMBER
and A.SHIPPING_ID = B.SHIPPING_ID
and A.EFFECTIVE_DATE = B.EFFECTIVE_DATE)
ここで、列TENANT_ID、CUSTOMER_PART_NUMBER、SHIPPING_ID、EFFECTIVE_DATEのレコードが同じ場合、重複レコードは挿入されません。
親切にお手伝いします。最初の画像では
がテーブルOSUSR_1SV_STAGING_FTP
TENANT_IDに基づいて重複データ、
CUSTOMER_PART_NUMBER、
SHIPPING_ID、
EFFECTIVE_DATE
があるしかし、私はのようにデータを挿入する必要があります重複のないテーブルOSUSR_1SV_QAD_PO_DATAの画像2 TENANT_ID、
CUSTOMER_PART私はこのクエリ(B.TENANT_ID = A.TENANT_IDとB.CUSTOMER_PART_NUMBER = A.CUSTOMER_PART_NUMBER ON OSUSR_1SV_STAGING_FTP B
を用い
MERGE OSUSR_1SV_QAD_PO_DATA A
を試みた_number、
SHIPPING_ID、
EFFECTIVE_DATE
およびB.SHIPPING_ID = A.SHIPPING_IDおよびB.EFFECTIVE_DATE = A.EFFECTIVE_DATE)
これが一致したとき
DELETE THEN一致しないWHERE ID NOT IN(GROUP BY CUSTOMER_PART_NUMBER、SHIPPING_ID OSUSR_1SV_STAGING_FTP
FROM MIN(ID)_
を選択)
INSERT(TENANT_ID、CUSTOMER_PART_NUMBER、LEAR_PART_NUMBER、SHIPPING_ID、CUSTOMER_NAME、PROGRAM_NAME、EFFECTIVE_DATE、END_DATE、 CHANGE_ID、PO_NUMBER、PO_PRICE)
VALUES(B.TENANT_ID、B.CUSTOMER_PART_NUMBER、B.LEAR_PART_NUMBER、B.SHIPPING_ID、
B.CUSTOMER_NAME、B.PROGRAM_NAME、B.EFFECTIVE_DATE、B.END_DATE、B.CHANGE_ID、B。 PO_NUMBER、B.PO_PRICE);
はなぜクエリの仕事はしていませんか? –