Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Error en consulta con tablas vacias.

Estas en el tema de Error en consulta con tablas vacias. en el foro de Mysql en Foros del Web. Hola a todos ya e intentado hasta el cansancio una manera de hacer funcionar esta consulta en caso de que la tabla Matriculas o la ...
  #1 (permalink)  
Antiguo 01/10/2012, 01:47
 
Fecha de Ingreso: marzo-2012
Ubicación: Managua
Mensajes: 7
Antigüedad: 12 años
Puntos: 0
Pregunta Error en consulta con tablas vacias.

Hola a todos ya e intentado hasta el cansancio una manera de hacer funcionar esta consulta en caso de que la tabla Matriculas o la tabla alumnos este vacia pero no se como.

si la tabla matriculas y alumnos tienen datos la consulta funciona pero si no no me muestra nada aqui pongo:

select idgrupo, modalidad, grupos.añolectivo as lectivo,
turno, maxalumnos, letra, nivel ,
sum(case when sexo = 'masculino' then 1 else 0 end) as ninos,
sum(case when sexo = 'femenino' then 1 else 0 end) as ninas ,
(sum(case when sexo = 'masculino' then 1 else 0 end) +
sum(case when sexo = 'femenino' then 1 else 0 end)) as suma
from grupos, cursos, matriculas, alumnos
where idalumno = id_alumno and id_grupo = idgrupo and idcursos= id_curso
group by id_grupo

Alguna idea? Gracias de antemano.

Última edición por gnzsoloyo; 02/10/2012 a las 19:02
  #2 (permalink)  
Antiguo 01/10/2012, 05:38
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años
Puntos: 574
Respuesta: Error en consulta con tablas vacias.

Esa consulta solo retorna datos combinados de las cuatro tablas luego es logico que si una no tiene no retorne nada....

select idgrupo,
modalidad,
grupos.añolectivo as lectivo,
turno,
maxalumnos,
letra,
nivel ,
sum(case when sexo = 'masculino' then 1 else 0 end) as ninos,
sum(case when sexo = 'femenino' then 1 else 0 end) as ninas,
count(idalumno) as suma //<--Mas facil no?
from grupos, cursos, matriculas, alumnos
where nombreteblaX.idalumno = nombreteblaY.id_alumno and nombreteblaX.id_grupo = nombreteblaZ.idgrupo and nombreteblaYY.idcursos= nombreteblaXX.id_curso
group by id_grupo

Para corregirte la query deberías poner el nombre de origen de la tabla en la clausula where es la unica forma que podamos ver que relación tienen tus tablas...

Repasa la sintaxis de JOIN...ON es mas moderna que la que usas y quizas te dara luz a tu problema
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 01/10/2012 a las 05:43

Etiquetas: consulta-table
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:30.