[ Foro de SQL (y MySQL) ]

AYUDA CASE SQL

29-Jan-2020 18:26
SIN NOMBRE
1 Respuestas

Hola, tengo una duda:
Tengo una consulta con ID, OBSERVACION y APORTA.

EL ID es un cliente, idealmente único en la tabla (INT).
OBSERVACION me indica que acciones ha realizado el cliente (INT).
APORTA me indica si el cliente realizo ciertas tareas. 'SI' o 'NO'

Me gustaría que en la tabla NO se mostrara 'SI' y 'NO' a la vez, ó más de 1 'SI', es decir, si el cliente realizo cualquier combinación de las tareas 4002,4003 o 4004 , aparezca solo 1 fila que diga APORTA-> 'SI'. caso contrario 'NO'.

Aunque borre la columna OBSERVACION me sigue mostrando casos con APORTA 'SI' 'NO'

Agradecería su ayuda

Este es el case que utilizo:

CASE WHEN
COUNT(CASE WHEN B.CAMPO= 4002 OR
B.CAMPO= 4003 OR
B.CAMPO= 4004 THEN 1
 END) > 0 THEN 'SI' ELSE 'NO'
END AS APORTA


02-Feb-2020 10:47
Nacho Cabanes (+84)

¿No te bastaría con la función "IF"?  No dices qué gestor de bases de datos empleas, pero  la sintaxis básica es algo como:

SELECT IF(campo=4002, "SI", "NO") FROM ...

En tu caso, sólo faltaría combinar las 3 posibilidades con "OR".

https://dev.mysql.com/doc/refman/8.0/en/control-flow-functions.html#function_if






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)