Multiple Condition in multiple rows
866581Jun 6 2011 — edited Jun 6 2011Hello.
Wondered if you could help?
I use Oracle 8.1 and in the DB is like this:
AUX_CLAVE CODIGO_T CODIGO_V CODIGO_C
17323400 1 1 NULL
17323400 4 15 1
17323401 1 1 NULL
17323401 4 156 1
I have this Query.
SELECT DISTINCT AUX_CLAVE, CODIGO_T, CODIGO_V, CODIGO_C
FROM MUTUA_MUTUA.DAUXILIAR
LEFT OUTER JOIN
(SELECT TAC_ID_TALLER AS TALLER_T ,
CAT_COD_TIPOCARACT AS CODIGO_T ,
CAT_DESCRIPCION AS DESCRIPCION_T,
TAC_COD_CARACT ,
CAT_ORDEN ,
TAC_ORDEN
FROM MUTUA_SINIES.CARACTERIS,
MUTUA_SINIES.CARACTERISTIPO ,
MUTUA_SINIES.TALLERCARACT
WHERE CAR_COD_TIPOCARACT = CAT_COD_TIPOCARACT
AND CAR_COD_CARACT = TAC_COD_CARACT
) T
ON TALLER_T = AUX_CLAVE
LEFT OUTER JOIN
(SELECT CAR_COD_CARACT AS CODIGO_V ,
CAR_DESCRIPCION AS DESCRIPCION_V,
CAR_COD_TIPOCARACT ,
CAR_ORDEN
FROM MUTUA_SINIES.CARACTERIS
) V
ON CODIGO_V = TAC_COD_CARACT
LEFT OUTER JOIN
(SELECT TAC_ID_TALLER AS TALLER_C ,
CAC_COD_CONDICION AS CODIGO_C ,
CAC_DESCRIPCION AS DESCRIPCION_C,
CAC_COD_TIPOCARACT ,
CAC_COD_CARACT ,
CAC_ORDEN
FROM MUTUA_SINIES.TALLERCARACT,
MUTUA_SINIES.TALLERCONDICION ,
MUTUA_SINIES.CARACTERISCOND
WHERE CAC_COD_CONDICION = TAD_COD_CONDICION
AND TAC_ID_TALLCAR = TAD_ID_TALLCAR
AND CAC_COD_CARACT = TAC_COD_CARACT
) C
ON TALLER_C = TALLER_T
AND CAC_COD_TIPOCARACT = CAR_COD_TIPOCARACT
AND TAC_COD_CARACT = CAC_COD_CARACT
WHERE ( ( 1 = CODIGO_T OR 4 = CODIGO_T ) AND( 1 = CODIGO_V OR 156 = CODIGO_V ) )
The result is:
AUX_CLAVE CODIGO_T CODIGO_V CODIGO_C
17323400 1 1 NULL
17323401 1 1 NULL
17323401 4 156 1
But, I just need to display only 17323401, that whould meet the bout conditions ( 1 = CODIGO_T OR 4 = CODIGO_T ) AND( 1 = CODIGO_V OR 156 = CODIGO_V ).
I try whit group by:
GROUP BY AUX_CLAVE
HAVING SUM ( CASE
WHEN ( ( 1 = CODIGO_T OR 4 = CODIGO_T ) AND( 1 = CODIGO_V OR 156 = CODIGO_V ) )
THEN 0
ELSE 1
END
) = 0
But the resoult is the same, 17323400 and 17323401. I need to display only 17323401.
What can I do??
Edited by: 863578 on 06-jun-2011 0:46
Edited by: 863578 on 06-jun-2011 0:46