Дубликат или та же запись в запросе выбора - PullRequest
0 голосов
/ 25 февраля 2020

Я пытался выполнить запрос на выборку, который я выбираю из разных таблиц, но я все еще получаю дубликат записи, даже когда я использую «DISTINCT». Ниже я приложил результат из моего запроса .

SELECT DISTINCT CSC.POLICYNO 
    ,PSA.WORKFLOWID 
    ,CSC.POLICYHOLDERNAME
    ,CSC.TASKTYPE 
    ,CSC.PRODUCTCODE
    ,WF.STATUS
    ,(SELECT concat(USR.SFIRSTNAME, USR.SLASTNAME) where USR.lseqid = (select psa.userid where psa.actiontype IN(602))) AS DE_Name
    ,PSA.CREATEDATE AS DE_Start_date
    ,(SELECT UPDATEDATE FROM C_WF_PS_AUDITTRAIL WHERE WORKFLOWID = PSA.WORKFLOWID AND  ACTIONTYPE IN (603) ) as DE_End_date
FROM C_WF_PS_AUDITTRAIL PSA  
INNER JOIN MUSER USR ON USR.LSEQID = PSA.USERID 
INNER JOIN C_WF_PS_WORKFLOW WF ON WF.WORKFLOWID = PSA.WORKFLOWID
INNER JOIN C_CSC_PS_CACHE CSC ON CSC.POLICYNO = WF.POLICYNO
WHERE WF.POLICYNO = CSC.POLICYNO
AND  MONTH (PSA.CREATEDATE) = @month AND YEAR(PSA.CREATEDATE) = @year

enter image description here

Ответы [ 2 ]

0 голосов
/ 25 февраля 2020

DE_Name отличается между 2 рядами. Так что это правильно.

Чтобы решить вашу проблему, просто сделайте это

WHERE WF.POLICYNO = CSC.POLICYNO and DE_name is not null

Тем не менее, проблема root вызывает то, что вам просто нужно выбрать несколько столбцов, чтобы убедиться, что это уникален и имеет смысл.

0 голосов
/ 25 февраля 2020

Вы можете добавить группу к концу строки.

SELECT DISTINCT CSC.POLICYNO 
    ,PSA.WORKFLOWID 
    ,CSC.POLICYHOLDERNAME
    ,CSC.TASKTYPE 
    ,CSC.PRODUCTCODE
    ,WF.STATUS
    ,(SELECT concat(USR.SFIRSTNAME, USR.SLASTNAME) where USR.lseqid = (select psa.userid where psa.actiontype IN(602))) AS DE_Name
    ,PSA.CREATEDATE AS DE_Start_date
    ,(SELECT UPDATEDATE FROM C_WF_PS_AUDITTRAIL WHERE WORKFLOWID = PSA.WORKFLOWID AND  ACTIONTYPE IN (603) ) as DE_End_date
    FROM C_WF_PS_AUDITTRAIL PSA  
    INNER JOIN MUSER USR ON USR.LSEQID = PSA.USERID 
    INNER JOIN C_WF_PS_WORKFLOW WF ON WF.WORKFLOWID = PSA.WORKFLOWID
    INNER JOIN C_CSC_PS_CACHE CSC ON CSC.POLICYNO = WF.POLICYNO
    WHERE WF.POLICYNO = CSC.POLICYNO
    AND  MONTH (PSA.CREATEDATE) = @month AND YEAR(PSA.CREATEDATE) = @year
    **GROUP BY ......**
...