0% found this document useful (0 votes)
4 views

Load data to table respecting constraint

The document outlines a SQL MERGE statement that updates or inserts records into the 'OPP3MTENG_TBL' table based on data from the 'OPP3FORECAST_MTE_CV' source. It eliminates duplicates by selecting the most recent record for each unique combination of specified keys. The statement updates existing records when matches are found and inserts new records when no matches exist.

Uploaded by

Vedran
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

Load data to table respecting constraint

The document outlines a SQL MERGE statement that updates or inserts records into the 'OPP3MTENG_TBL' table based on data from the 'OPP3FORECAST_MTE_CV' source. It eliminates duplicates by selecting the most recent record for each unique combination of specified keys. The statement updates existing records when matches are found and inserts new records when no matches exist.

Uploaded by

Vedran
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

MERGE INTO "VEDRAN"."system-local.private.

VJE::OPP3MTENG_TBL" AS target
USING (
SELECT *
FROM (
SELECT
COALESCE(OPPORTUNITY, '') AS OPPORTUNITY,
COALESCE(TAETIGKEITSART_I, '') AS TAETIGKEITSART_I,
COALESCE(SUB_SOLUTION, '') AS SUB_SOLUTION,
COALESCE(ENG_PARTNER_I, '') AS ENG_PARTNER_I,
COALESCE(ENG_MANAGER_I, '') AS ENG_MANAGER_I,
COALESCE(PROFIT_CENTER_I, '') AS PROFIT_CENTER_I,
SOLUTION_SERVICE,
CREATED_AT,
STARTDATE,
EXPECTED_END,
PROFIT_CENTER_H,
KPMG_REGION,
ENG_MANAGER_H,
ENG_PARTNER_H,
CRM_USER_STATUS,
SALES_STAGE,
ACTUAL_PERIOD,
ROW_NUMBER() OVER (PARTITION BY OPPORTUNITY, TAETIGKEITSART_I,
SUB_SOLUTION, ENG_PARTNER_I, ENG_MANAGER_I, PROFIT_CENTER_I ORDER BY CREATED_AT
DESC) AS row_num
FROM "_SYS_BIC"."KPMG.DE.SAP.BI.EDW.OPP/OPP3FORECAST_MTE_CV"
)
WHERE row_num = 1 -- Uklanja duplikate, ostavljajući samo jedan red za isti
primarni ključ
) AS source
ON target.OPPORTUNITY = source.OPPORTUNITY
AND target.TAETIGKEITSART_I = source.TAETIGKEITSART_I
AND target.SUB_SOLUTION = source.SUB_SOLUTION
AND target.ENG_PARTNER_I = source.ENG_PARTNER_I
AND target.ENG_MANAGER_I = source.ENG_MANAGER_I
AND target.PROFIT_CENTER_I = source.PROFIT_CENTER_I
WHEN MATCHED THEN
UPDATE SET
target.SOLUTION_SERVICE = source.SOLUTION_SERVICE,
target.CREATED_AT = source.CREATED_AT,
target.STARTDATE = source.STARTDATE,
target.EXPECTED_END = source.EXPECTED_END,
target.PROFIT_CENTER_H = source.PROFIT_CENTER_H,
target.KPMG_REGION = source.KPMG_REGION,
target.ENG_MANAGER_H = source.ENG_MANAGER_H,
target.ENG_PARTNER_H = source.ENG_PARTNER_H,
target.CRM_USER_STATUS = source.CRM_USER_STATUS,
target.SALES_STAGE = source.SALES_STAGE,
target.ACTUAL_PERIOD = source.ACTUAL_PERIOD
WHEN NOT MATCHED THEN
INSERT (
OPPORTUNITY,
TAETIGKEITSART_I,
SUB_SOLUTION,
ENG_PARTNER_I,
ENG_MANAGER_I,
PROFIT_CENTER_I,
SOLUTION_SERVICE,
CREATED_AT,
STARTDATE,
EXPECTED_END,
PROFIT_CENTER_H,
KPMG_REGION,
ENG_MANAGER_H,
ENG_PARTNER_H,
CRM_USER_STATUS,
SALES_STAGE,
ACTUAL_PERIOD
) VALUES (
source.OPPORTUNITY,
source.TAETIGKEITSART_I,
source.SUB_SOLUTION,
source.ENG_PARTNER_I,
source.ENG_MANAGER_I,
source.PROFIT_CENTER_I,
source.SOLUTION_SERVICE,
source.CREATED_AT,
source.STARTDATE,
source.EXPECTED_END,
source.PROFIT_CENTER_H,
source.KPMG_REGION,
source.ENG_MANAGER_H,
source.ENG_PARTNER_H,
source.CRM_USER_STATUS,
source.SALES_STAGE,
source.ACTUAL_PERIOD
);

You might also like