diferencia entre querys
Hola!
Tengo grupo de tres querys unidos (union) que "en teoria" realizan bien su tarea, me pidieron simplificar esos querys y hacerlos mas pequeños de tal manera que sea mas entendible y principalmente trabaje mejor sin embargo supuestamente lo hice pero me regresa mas registros y esos registros de mas son por que traigo registros duplicados, me podrán ayudar no encuentro en que estoy mal. Cabe mencionar que la diferencia es poca pues son unicamente 200 registros de mas que traigo yo de un grupo de 26000 registros en total, todos los demás están bien.
Desafortunadamente no puedo traerme la estructura de las tabla por que no tengo permisos mas que para hacer select en esa base de datos.
Muchas gracias por apoyarme!
QUERY ORIGINAL
SELECT 'Tarj',A.CVE_ESTATUSTXN,A.FEC_TRANSACCION,A.NOM_BENEFICIARIO,
A.NUM_CLIENTE,A.NUM_CUENTA,A.CVE_ESTATUSTXN,A.NUM_PREFIJOCUENTA,
A.NUM_SUCPROMTORACTA,A.CVE_NUMEJEUNO,A.CVE_TIPOCUENTA,A.CVE_NUMEJEDOS,
A.IMP_TRANSACCION,A.CVE_NATURLEZARCHVO,B.NUMCLIENTE AS Clte_Cta,
B.PREFMDA as Suc_Bin,B.CUENTAMDA Cta_Tarj,C.NOMBRE as Nombre,
B.CUENTABASICA as Basica_Tarj
FROM C.FZ2S274BITV2 A
LEFT JOIN C.LA1MDA B
ON A.NUM_PREFIJOCUENTA = B.PREFMDA
AND A.NUM_CUENTA=B.CUENTAMDA
LEFT JOIN C.LA1CTE C
ON B.NUMCLIENTE=C.NUMCLIENTE
WHERE A.NUM_CLIENTE=3873540
AND A.CVE_TIPOCUENTA=3
UNION
SELECT 'Chqs',A.CVE_ESTATUSTXN,A.FEC_TRANSACCION,A.NOM_BENEFICIARIO,
A.NUM_CLIENTE,A.NUM_CUENTA,A.CVE_ESTATUSTXN,A.NUM_PREFIJOCUENTA,
A.NUM_SUCPROMTORACTA,A.CVE_NUMEJEUNO,A.CVE_TIPOCUENTA,A.CVE_NUMEJEDOS,
A.IMP_TRANSACCION,A.CVE_NATURLEZARCHVO,B.NUMCLIENTE AS Clte_Cta,
B.PREFMDA as Suc_Bin,B.CUENTAMDA Cta_Tarj,C.NOMBRE as Nombre,
B.CUENTABASICA as Basica_Tarj
FROM C.FZ2S274BITV2 A
LEFT JOIN C.LA1MDA B
ON A.NUM_SUCPROMTORACTA = B.PREFMDA
AND A.NUM_CUENTA=B.CUENTAMDA
LEFT JOIN C.LA1CTE C
ON B.NUMCLIENTE=C.NUMCLIENTE
WHERE A.NUM_CLIENTE=3873540
AND A.CVE_TIPOCUENTA=1
UNION
SELECT 'Interb_Serv_OP',A.CVE_ESTATUSTXN,A.FEC_TRANSACCION,
A.NOM_BENEFICIARIO,A.NUM_CLIENTE,A.NUM_CUENTA,A.CVE_ESTATUSTXN,
A.NUM_PREFIJOCUENTA,A.NUM_SUCPROMTORACTA,A.CVE_NUMEJEUNO,
A.CVE_TIPOCUENTA,A.CVE_NUMEJEDOS,A.IMP_TRANSACCION,A.CVE_NATURLEZARCHVO,
0 AS Clte_Cta,
0 AS Suc_Bin,
0 AS Cta_Tarj,
' ' AS Nombre,
' ' AS Basica_Tarj
FROM C.FZ2S274BITV2 A
WHERE A.NUM_CLIENTE=3873540
AND A.CVE_TIPOCUENTA NOT IN(1,3)
MI QUERY
SELECT A.CVE_ESTATUSTXN,A.FEC_TRANSACCION,A.NOM_BENEFICIARIO,A.NUM_CLIENTE,
A.NUM_CUENTA,A.CVE_ESTATUSTXN,A.NUM_PREFIJOCUENTA,A.NUM_SUCPROMTORACTA,A.CVE_NUMEJEUNO,
A.CVE_TIPOCUENTA,A.CVE_NUMEJEDOS,A.IMP_TRANSACCION,A.CVE_NATURLEZARCHVO,B.NUMCLIENTE AS Clte_Cta,
B.PREFMDA as Suc_Bin,B.CUENTAMDA Cta_Tarj,C.NOMBRE as Nombre,B.CUENTABASICA as Basica_Tarj,
CASE
WHEN A.CVE_TIPOCUENTA=3 THEN 'Tarj'
WHEN A.CVE_TIPOCUENTA=1 THEN 'Chqs'
ELSE 'Interb_Serv_OP'
END AS TIPO
FROM C.FZ2S274BITV2 A
LEFT JOIN C.LA1MDA B
ON A.NUM_CUENTA=B.CUENTAMDA
AND (A.NUM_PREFIJOCUENTA = B.PREFMDA OR A.NUM_SUCPROMTORACTA = B.PREFMDA)
LEFT JOIN C.LA1CTE C
ON B.NUMCLIENTE=C.NUMCLIENTE
WHERE A.NUM_CLIENTE=3873540