У меня есть две таблицы: ТАБЛИЦА A и ТАБЛИЦА B того же формата. Я бегу слияния заявление, используя таблицу В качестве источникаСлияние с условиями (SQL Server)
TYPE ITEM QTY1 QTY2 QTY3
A AAA 100 200 300
A BBB 150 250 310
B CCC 101 123 131
C DDD 102 55 12
Дело в том, я хочу, чтобы обновить определенные столбцы, только если запись уже существует в целевой таблице. Вот что я хотел сделать, но я не могу заставить его работать. Я просто хотел знать, возможно ли это с помощью заявления MERGE?
MERGE TABLE A
USING (SELECT * FROM TABLE B) B
ON B.TYPE = A.TYPE AND B.ITEM = A.ITEM
WHEN NOT MATCHED THEN
INSERT (TYPE, ITEM, QTY1, QTY2, QTY3) VALUES (B.TYPE, B.ITEM, B.QTY1, B.QTY2, B.QTY3)
WHEN MATCHED THEN
CASE
WHEN 'A' : UPDATE SET A.QTY1 = B.QTY1, A.QTY2 = B.QTY2, A.QTY3 = B.QTY3
WHEN 'B' : UPDATE SET A.QTY2 = B.QTY2 , A.QTY3 = B.QTY3
WHEN 'C' : UPDATE SET A.QTY3 = B.QTY3
END;
Не могу поверить, что я не видел этого ... Спасибо! –