У меня три таблицы только с одним общим полем [Asset].
Одна таблица [tblAssets] содержит все поля, которые я хочу.
Однако я хотел бы проверить две другие таблицы и добавить любой [Актив], который не отображается в первой таблице.
Это должно привести к новой записи, содержащей только [Актив] и оставшиеся пустые поля.
Мой текущий код выглядит следующим образом:
SELECT *, "Assets" AS [Source]
FROM [tblAssets]
UNION SELECT "BOM", [Asset], NULL, NULL, NULL, NULL, NULL, NULL
FROM [tblBOM]
UNION SELECT "WO", [Asset], NULL, NULL, NULL, NULL, NULL, NULL
FROM [tblWO];
Это добавляетзаписей, как и ожидалось, но не удаляет дубликаты из-за того, что вся запись не является дубликатом.
Я подозреваю, что есть другие методы для решения этой проблемы, такие как запрос на добавление с определенными условиями.
Чтобы уточнить, я хочу получить полный список всех [Активов], которые появляются в нескольких источниках данных, но ТОЛЬКО в остальных полях, которые отображаются в таблице [Активы].
Пример данных:
tblAssets -
Asset Type Unit
P1 2 1
M1 1 2
tblBOM -
Comp Asset Qty
1 P1 1
2 P2 2
tblWO -
WO Asset Cost
1 P1 100
2 C1 200
Токовый выход
Source Asset Type Unit
Assets P1 2 1
Assets M1 1 2
BOM P1
BOM P2
WO P1
WO C1
Желаемый вывод
Source Asset Type Unit
Assets P1 2 1
Assets M1 1 2
BOM P2
WO C1