10/12/2013, 09:09
|
| | Fecha de Ingreso: junio-2012
Mensajes: 147
Antigüedad: 12 años, 4 meses Puntos: 1 | |
Uso de clausula CASE Buenas a todos. Tengo un problema con una sentencia SQL que no soy capaz de resolver, a ver si podeis ayudarme.
Tengo dos tablas:
- tbl_grupos. Atributos:
-- idgrupo
-- nombre_grupo
-- centro_grupo (clave foránea referenciando a idcentro de la tabla tbl_centro. Puede ser null).
- tbl_centros. Atributos:
-- idcentro
-- nombre_centro
Bien, quiero recuperar toda la información de los grupos pero en vez de centro_grupo, que es un int, que aparezca el nombre del grupo. Y el problema viene con los grupos que tienen centro_grupo = NULL (no pertenecen a ningún centro).
La siguiente sentencia funciona perfectamente:
SELECT g.idgrupo, g.nombre_grupo, c.nombre_centro
FROM tbl_grupos g
INNER JOIN tbl_centros c
WHERE c.idcentro = g.centro_grupo
Pero no muestra los grupos en los que centro_grupo = NULL. Para solucionarlo intento usar CASE pero no acabo de dar con la sentencia correcta. Partí de la siguiente sentencia, variando todo lo que se me ocurrió en la parte del CASE, pero no he conseguido que funcione.
SELECT g.idgrupo, g.nombre_grupo, g.centro_grupo =
CASE c.nombre
WHEN NULL THEN "-"
END
FROM tbl_grupos g
INNER JOIN tbl_centros c
WHERE c.idcentro = g.centro_grupo
Si pudierais ayudarme estaría muy agradecido.
Saludos. |