Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/12/2013, 09:09
DandyCC
 
Fecha de Ingreso: junio-2012
Mensajes: 147
Antigüedad: 11 años, 10 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.