I am trying to develop a DMR from the DMR #1 which return all the data which are identified by DMR #1 so that I can load them to a work table and then delete the duplicates before inserting back to the main table. So I have DMR #2 but when execute it, it returns twice the rows which are identified by DMR #1. I need help with DMR #2 which will return only the number of rows identified by DMR #1
--- DMR #1
SELECT PHRMCY_CLAIM_ID
,PHRMCY_CLAIM_ID_SEQ_NUM
,BUSN_ENTY_ID
,MBR_ACCT_ID
,Min(DW_UPDT_USR) AS min_DW_UPDT_USR
,Max(DW_UPDT_USR) AS max_DW_UPDT_USR
,Count(1) AS rec_cnt
FROM (SELECT
svc.PHRMCY_CLAIM_ID
,svc.PHRMCY_CLAIM_ID_SEQ_NUM
,svc.BUSN_ENTY_ID
,svc.MBR_ACCT_ID
,pcm.DW_UPDT_USR
FROM USS.RXDW_PHRMCY AS SVC
JOIN USS.MBR_ACCT AS pcm ON svc.PHRMCY_CLAIM_ID = pcm.PHRMCY_CLAIM_ID
and svc.PHRMCY_CLAIM_ID_SEQ_NUM = pcm.PHRMCY_CLAIM_ID_SEQ_NUM
and svc.ADJUD_DT = pcm.ADJUD_DT
) AS S
GROUP BY 1,2,3,4
HAVING COUNT(1)>1;
--- DMR #2
SELECT M.* FROM USS.MBR_ACCT M
WHERE (M.PHRMCY_CLAIM_ID,M.PHRMCY_CLAIM_ID_SEQ_NUM,M.MBR_ACCT_ID) IN
(
SELECT PHRMCY_CLAIM_ID
,PHRMCY_CLAIM_ID_SEQ_NUM
,MBR_ACCT_ID
FROM (SELECT
svc.PHRMCY_CLAIM_ID
,svc.PHRMCY_CLAIM_ID_SEQ_NUM
,svc.BUSN_ENTY_ID
,svc.MBR_ACCT_ID
,pcm.DW_UPDT_USR
FROM USS.RXDW_PHRMCY AS SVC
JOIN USS.MBR_ACCT AS pcm ON svc.PHRMCY_CLAIM_ID = pcm.PHRMCY_CLAIM_ID
and svc.PHRMCY_CLAIM_ID_SEQ_NUM = pcm.PHRMCY_CLAIM_ID_SEQ_NUM
and svc.ADJUD_DT = pcm.ADJUD_DT
) AS S
GROUP BY 1,2,3
HAVING COUNT(1)>1);