Cześć,
Mam tabelę sprzedażową na lokalnym MS SQL server. Nazywa się "b85_dane_sprzedazy". Dane pochodzą z zewnętrznego źródła oracle połączonej jako "Linked servers" Codziennie chciałbym dopisywać do tej tabeli, nowe dane oraz uaktualniać te, które się zmieniły. Czyli tabela na serwerze zewnętrznym będzie źródłem. Tabela posiada dane z 3 ostatnich lat, ale oczywiście dane, które potencjalne mogą się zmienić będą pochodziły maksymalnie -10 dni. Zapytanie przekazujące, do ściągnięcia danych z ostatnich 3 lat wygląda jak poniżej
SET DATEFIRST 1
SELECT
LV_C_8MTI,
CAST(EV_DATE_EDC_MTI AS DATE) EV_DATE_EDC_MTI,
cast(LV_QTE_DEMANDEE as numeric (15,0)) LV_QTE_DEMANDEE,
cast(LV_QTE_MANQUANTE as numeric (15,0)) LV_QTE_MANQUANTE,
cast(LV_QTE_SERVIE as numeric (15,0)) LV_QTE_SERVIE,
cast(EI_C_EAN as varchar(13)) EI_C_EAN,
left(EV_DATE_EDC_MTI,4) rok,
RIGHT(STUFF(DATEPART(week,EV_DATE_EDC_MTI),1,0,'0'),2) tydzien,
concat(LV_C_8MTI,' ',(left(EV_DATE_EDC_MTI,4))) as id_8MTI,
concat(EI_C_EAN,' ',(left(EV_DATE_EDC_MTI,4))) as id_EAN
INTO b85_dane_sprzedazy
FROM OPENQUERY(REPLIKA, 'SELECT
G2354DOGI.HIST_L_VENTES.LV_C_8MTI,
G2354DOGI.HIST_E_VENTES.EV_DATE_EDC_MTI,
sum(LV_QTE_DEMANDEE) as LV_QTE_DEMANDEE,
sum(LV_QTE_MANQUANTE) as LV_QTE_MANQUANTE,
sum(LV_QTE_SERVIE) as LV_QTE_SERVIE,
G2354DOGI.EAN13_8MTI.EI_C_EAN,
G2354DOGI.EAN13_8MTI.EI_C_8MTI,
G2354DOGI.EAN13_8MTI.EI_ORDRE
FROM G2354DOGI.EAN13_8MTI INNER JOIN (G2354DOGI.HIST_E_VENTES INNER JOIN G2354DOGI.HIST_L_VENTES ON (G2354DOGI.HIST_E_VENTES.EV_NO_BL = G2354DOGI.HIST_L_VENTES.LV_NO_BL) AND (G2354DOGI.HIST_E_VENTES.EV_NO_EDC_PDV = G2354DOGI.HIST_L_VENTES.LV_NO_EDC_PDV) AND (G2354DOGI.HIST_E_VENTES.EV_NO_EDC_MTI = G2354DOGI.HIST_L_VENTES.LV_NO_EDC_MTI)) ON G2354DOGI.EAN13_8MTI.EI_C_8MTI = G2354DOGI.HIST_L_VENTES.LV_C_8MTI
WHERE EV_DATE_EDC_MTI > to_date(''2019-01-01'',''yyyy-mm-dd'') AND EV_C_CLI > 02000 AND EI_ORDRE = 1
GROUP BY LV_C_8MTI, EV_DATE_EDC_MTI, EAN13_8MTI.EI_C_EAN, EAN13_8MTI.EI_C_8MTI, EAN13_8MTI.EI_ORDRE')
CREATE INDEX indx_8MTI_and_data_b95 ON [listing].[dbo].[b95_dane_sprzedazy](LV_C_8MTI, EV_DATE_EDC_MTI, EI_C_EAN, id_8MTI, id_EAN)
Moje pytanie brzmi, jak powinien wyglądać kod, który uaktualni moją lokalną tabelę, o dane które się zmieniły i nowe które jeszcze się nie znajdują w lokalnej tabeli.
Pozdrawiam