Я пытаюсь сравнить столбцы в таблице и вставить данные на основе нескольких условий. Есть 4 столбца, которые необходимо вставить, два из них будут взяты из таблицы, упомянутой ниже, один - общая точка данных, а последний - на основе логики.
Таблица 1: Основная таблица называется [CNAM отPOST]
Date MDN Name Product
2019-10-03 18992 Hardeep Chawla CNAM
2019-10-01 18993 Preeti Chawla CNAM
2019-10-01 18994 Neelam Chawla CNAM
2019-10-02 24363 Surinder Chawla CNAM
Таблица вторая: это таблица, которая ежедневно выгружается в БД:
dDate MMDN NName Pproduct
2019-10-06 18993 Preeti Chawla CNAM
2019-10-06 18994 Neelam Chawla
2019-10-06 18996 HC CNAM
2019-10-02 24363 Surinder Chawla CNAM
Нам нужно сравнить эти две таблицы и поместить данные в третью. Таблица плюс обновить основную таблицу только определенными записями.
Для этого:
Я создаю третью промежуточную таблицу, объединяя первые две:
select A.*, B.* into CNAM_staging from [CNAM from POST] as A Full join CNAM_file as B on (A.MDN = b.MMDN)
Встроенное изображение
Это третий и последний стол.
- ResellerpartnerID всегда
12345
- Индикатор имеет три значения:
U
, I
и D
на основе логики (U - обновление, I - вставка и D -это удалить)
ResellerPartnerID MDN Индикатор CustomerName. Логика и запросы следующие:
select MMdn, Nname
from CNAM_staging
where MDN is null -- Indicator field is 'I' and this record (4 fields form CNAM_file) needs to be added to primary table (CNAM FROM POST)
select MMdn, Nname
from CNAM_staging
where Pproduct = ''
and MDN = MMDN -- Indicator field is 'D' Indicator field is 'I' and this record (4 fields form CNAM_file) needs to be removed from the primary table (CNAM FROM POST)
select MMdn, Nname
from CNAM_staging
where MDN = MMDN
and ddate > Date
and pproduct ! = '' -- Indicator field is 'U' and this record needs to be updated in CNAM from POST
Мне нужна финальная таблица в конце логики и обновление основной таблицы записями, упомянутыми только в логике