Oracle - Duda query con CASE WHEN

 
Vista:

Duda query con CASE WHEN

Publicado por Dani (5 intervenciones) el 20/06/2018 12:16:36
Buenos a todos,

Soy nuevo en este foro y tengo una duda con el CASE WHEN.
Os pongo el ejemplo que estoy utilizando pero no me saca los datos correctamente.

1
2
3
4
case when c.producto = 'PRESTAMOS' then 'PRESTAMOS'
       when c.producto = 'PRESTAMOS' and c.desrip like '%Garantia REAL%' then 'PRESTAMOS GARANTIA'
       when instr(upper(p.descrip),'PRESTAMO') > 0 then 'PRESTAMOS'
       else 'RESTO DE PRODUCTOS' end productos,


Haciendolo así siempre me saca PRESTAMOS o RESTO DE PRODUCTOS.

Podríais indicarme donde reside el problema?

Gracias, saludos!
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
sin imagen de perfil
Val: 499
Oro
Ha mantenido su posición en Oracle (en relación al último mes)
Gráfica de Oracle

Duda query con CASE WHEN

Publicado por Rafael (328 intervenciones) el 20/06/2018 13:05:00
Hola ...

Pues reside en que logicamente el proceso de prestamos de garantia NUNCA se cumple por que asume que cumplio la primera condicion ...

Ambas condiciones coinciden en que c.producto = 'PRESTAMOS' luego ...
Podrias probar algo asi ...

1
2
3
4
5
6
case when c.producto = 'PRESTAMOS' then
     case when c.desrip like '%Garantia REAL%' then 'PRESTAMOS GARANTIA'
          else 'PRESTAMOS' end
     when instr(upper(p.descrip),'PRESTAMO') > 0 then 'PRESTAMOS'
     else 'RESTO DE PRODUCTOS'
end productos,


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Duda query con CASE WHEN

Publicado por Dani (5 intervenciones) el 22/06/2018 08:59:32
Gracias por la respuesta. Tenias razon :)
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