Oracle - Multiple Condicion

   
Vista:

Multiple Condicion

Publicado por Anton (1 intervención) el 06/06/2011 09:38:38
Estoy usando la versión 1.5 de Oracle

Tengo esto en la BD

AUX_CLAVE CODIGO_T CODIGO_V CODIGO_C
17323400 1 1 NULL
17323400 4 15 1
17323401 1 1 NULL
17323401 4 156 1


Y al ejecutar esta 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 ) )


Obtengo
AUX_CLAVE CODIGO_T CODIGO_V CODIGO_C
17323400 1 1 NULL
17323401 1 1 NULL
17323401 4 156 1


Pero lo que necesito es que en realidad solo me devuelva el valor 17323401, porque cumple las dos condiciones ( 1 = CODIGO_T OR 4 = CODIGO_T ) AND( 1 = CODIGO_V OR 156 = CODIGO_V ).

Lo he intentado con el group by:
GROUP BY AUX_CLAVE
HAVING SUM ( CASE
WHEN ( ( 1 = CODIGO_T OR 4 = CODIGO_T ) AND( 1 = CODIGO_V OR 15 = CODIGO_V ) )
THEN 0
ELSE 1
END
) = 0

Pero aun así devuelve los dos valores.

Que puedo hacer??
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Multiple Condicion

Publicado por ulises (39 intervenciones) el 06/06/2011 19:43:11
Tu condicion es :
Where (( 1 = Codigo_t Or 4 = Codigo_t)
And (1 = Codigo_v Or 156 = Codigo_v)
)
y tu resultado es
AUX_CLAVE CODIGO_T CODIGO_V CODIGO_C
17323400 1 1 NULL
17323401 1 1 NULL
17323401 4 156 1



El resultado q t esta dando es el correcto, ya que las 3 lineas cumplen con la condicion
en el Where, deberias de ver si en tu tabla no hay otro valor q las haga distintas, validar
ese valor en el WHERE. para que t devuelba el resultado que deceas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar