Member 11856456 Ответов: 0

Как вставить в третью таблицу с помощью оператора where сравнение таблиц a и B


То, что я пытаюсь сделать, - это иметь справочную/исходную таблицу, которую мы будем называть (C), в которую данные вставляются после того, как таблица (A) обновляется из таблицы (B)


обновить таблицу A, где таблица B. col1 = A. col1 и B. col2 = A. col2
Установите A. col3= B. col3 и A. col4 = B. col4

вставить в C (Source_ID, source_reference) , где B. col1= A. col1 и B. col2 = A. col2

затем удалите совпадающие источники из таблицы B, чтобы избавиться от дубликатов.

Что я уже пробовал:

Я пытался использовать оператор match and merge, однако я не могу использовать оператор match merge для передачи в исходную таблицу для ссылок позже.

0x01AA

Откуда вы узнали этот мусорный оператор обновления SQL, подобный этому (обратите внимание на ??):

обновить таблицу A, где таблица B. col1 = A. col1 и B. col2 = A. col2
Набор
А. столбца col1= col1 и Б.
?? и A. col2 = B. col2 ??

Member 11856456

Извините, но после вашего вопроса я понял, что продублировал столбцы. Я обновил вопрос.

0x01AA

Не нужно извиняться. Во всяком случае, я не вижу большой разницы. С моей точки зрения вам нужно сначала исправить инструкцию update:
update table A
Set A.col3= B.col3,
A.col4 = B.col4
where table B.col1 = A.col1 and B.col2 = A.col2

0x01AA

Ваш вопрос (по крайней мере, для меня) очень неясен. Кроме того, ваш оператор insert синтаксически неверен; он совершенно не связан с предыдущим обновлением...

Santosh kumar Pithani

почему вы используете одни и те же столбцы "B. col1 = A. col1 и B. col2 = A. col2" для условий, а также набора обновлений?

Member 11856456

Я привел пример того, чего я пытаюсь достичь. Я пытаюсь сделать заявление о совпадении, не используя совпадение и слияние. Я пытаюсь добиться этого, потому что матч и слияние не будут вставляться в третью таблицу, которая мне нужна. Что касается столбцов, то я хочу найти эквивалентности между таблицами а и В, а информацию, которая не заполнена, я хочу обновить из таблицы В.

RedDk

Серьезно, улучшаю ваш вопрос ... это то, что мы должны сделать в этом случае. Итак, поехали. Забудь об этой идее ... У меня к тебе вопрос. Почему бы вам не показать свой запрос TSQL вместе с некоторым кодом CREATE TABLE, чтобы мы могли бросить туда некоторые данные, чтобы спелить код ошибки, который вы видите при запуске неисправного кода. О, подожди ... Забудь об этой идее. Просто дайте нам ваш код, мы введем некоторые данные в таблицу и ... что такое код ошибки? Именно так.

0 Ответов