Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Multiple Condition in multiple rows

866581Jun 6 2011 — edited Jun 6 2011
Hello.


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
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jul 4 2011
Added on Jun 6 2011
6 comments
141 views