Questions about "what you said".
Joseph Giallombardo, August 01, 2017 - 2:43 pm UTC
Can I get a followup response?
What is "user_objects" in the first SQL> .....as user_objects
And, I am unclear on 3 statement the object_id, object_name, object_type...???
created = ( select created from t1 where object_id = t.object_id ),
4 object_name = ( select object_name from t1 where object_id = t.object_id ),
5 object_type = ( select object_type from t1 where object_id = t.object_id )
August 01, 2017 - 4:00 pm UTC
Issue resolved
Joseph Giallombardo, August 01, 2017 - 7:18 pm UTC
Thanks for the help, I switch over to the Merge and also found the concept (new to me) of CTE
I put my complex query in the CTE and then used it with the merge. I also realized that I was missing some fields in the query, but the cte reduced having to repeat.
I am learning a lot...thanks.
MERGE INTO DOBS.CP_ITEMIZED target_table
USING
(WITH cte AS
(
SELECT H.TAKEDA_ID, P.First_Name_1, P.Middle_Name_1, P.Last_Name_1, P.Suffix_1, M.PRACTICE_LOC_ADDRESS, M.PRACTICE_LOC_CITY,
M.PRACTICE_LOC_STATE, M.PRACTICE_LOC_ZIP, M.PRACTICE_LOC_COUNTRY, H.DCH_NPI, M.TAXONOMY_1, P.LCNS_1, P.LCNS_2,P.STATE_1, P.STATE_2
FROM DOBS.CP_FED_HCP_FOR_RPT H
INNER JOIN DOBS.CP_NPI_TAKEDAID_MATCH M ON H.TAKEDA_ID = M.TAKEDA_ID
INNER JOIN DOBS.CP_CMS_PHYSICIAN_LIST P ON H.DCH_NPI = P.NPI
WHERE H.In_CMS_list = 'Yes'
AND H.Valid_For_Federal = 'Yes'
AND H.In_NPI_Match = 'Yes'
)
SELECT * FROM cte
) source_table
ON (target_table.TAKEDA_ID = source_table.TAKEDA_ID)
WHEN MATCHED THEN
UPDATE SET
target_table.PHYSICIAN_FIRST_NAME = source_table.First_Name_1,
target_table.PHYSICIAN_MIDDLE_NAME = source_table.Middle_Name_1,
target_table.PHYSICIAN_LAST_NAME = source_table.Last_Name_1,
target_table.PHYSICIAN_NAME_SUFFIX = source_table.Suffix_1,
target_table.RECIPIENT_PR_BUS_ST_ADDR_1 = source_table.PRACTICE_LOC_ADDRESS,
target_table.RECIPIENT_CITY = source_table.PRACTICE_LOC_CITY,
target_table.RECIPIENT_STATE = source_table.PRACTICE_LOC_STATE,
target_table.RECIPIENT_ZIP_CODE = source_table.PRACTICE_LOC_ZIP,
target_table.RECIPIENT_COUNTRY = source_table.PRACTICE_LOC_COUNTRY,
target_table.PHYS_OR_TEACH_HOSP_NPI = source_table.DCH_NPI,
target_table.PHYSICIAN_SPECIALTY = source_table.TAXONOMY_1,
target_table.PHYSICIAN_DATA_SOURCE_PRIMARY = 'CMS',
target_table.PHYS_LIC_STATE_LIC_NO_1 =
CASE
when Length(source_table.LCNS_1)<18 And source_table.LCNS_1<>'000000000'
then source_table.STATE_1 || '-' || source_table.LCNS_1
else source_table.STATE_2 || '-' || source_table.LCNS_2
END
August 03, 2017 - 1:13 am UTC
nice work.