2 таблицы - ПРАВИЛЬНОЕ СОЕДИНЕНИЕ, чтобы заменить поля в таблице 2 - PullRequest
0 голосов
/ 31 января 2020

2 таблицы - попытка ПРАВИЛЬНОГО СОЮЗА, чтобы заменить поля в Таблице 2, но при этом сохранить все содержимое Таблицы 2. Table1

Table 2

В конечном итоге, что я пытаюсь Для этого нужно заполнить столбец tcrutm таблицы 2 записями, основанными на таблице 1, при этом PartNumber и mcno должны быть равны в обеих таблицах. Прикрепленный код делает то, что мне нужно, но возвращает только столбец tcrutm. Я хотел бы, чтобы таблица 2 полностью отображалась с заполненными записями. Нужно ли пересоздавать таблицу и перезаписывать ее? Я не уверен. Или можно использовать UNION?

Любая помощь приветствуется.

SELECT InsertResults.tcrutm
--PartList.SWITEM,
--PartList.QTY,
--ItemMaster.dsca
FROM FFGD.dbo.CAMWORKS AS InsertResults
RIGHT JOIN FFGD.dbo.BAANExport AS Results ON InsertResults.PartNumber = Results.PartNumber
    AND InsertResults.mcno = Results.mcno

1 Ответ

0 голосов
/ 31 января 2020

Попробуйте с этим кодом

SELECT T2.[PartNumber],[SWITEM],[QTY],T1.[tcrutm],T2.[mcno] 
FROM [dbo].[table_2] AS T2
LEFT OUTER JOIN [dbo].[table_1] AS T1
    ON T2.[PartNumber] = T1.PartNumber AND T2.mcno = T1.mcn

Если вы хотите заполнить вторую таблицу, используйте ее сначала и используйте LEFT JOIN. Или этот запрос эквивалентен, используя RIGHT JOIN

SELECT T2.[PartNumber],[SWITEM],[QTY],T1.[tcrutm],T2.[mcno]
FROM [dbo].[table_1] AS T1
RIGHT OUTER JOIN [dbo].[table_2] AS T2
    ON T1.PartNumber = T2.[PartNumber] AND T1.mcno = T2.mcno

enter image description here

EDIT:

Вот ответ на ваш комментарий:

SELECT T2.[PartNumber],[SWITEM],[QTY],T1.[tcrutm],T2.[mcno] 
INTO [dbo].[table_results]
FROM [dbo].[table_2] AS T2
LEFT OUTER JOIN [dbo].[table_1] AS T1
ON T2.[PartNumber] = T1.PartNumber AND T2.mcno = T1.mcno

SELECT * FROM [dbo].[table_results]

Просто добавьте INTO [name_of_your_table] между полями SELECT и FROM

...