Ver Mensaje Individual
  #5 (permalink)  
Antiguo 23/02/2013, 12:03
Avatar de sebandrescc2
sebandrescc2
 
Fecha de Ingreso: diciembre-2012
Mensajes: 45
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Como devolver registros sin valores

Cita:
Iniciado por wchiquito Ver Mensaje
Hola sebandrescc2,

Trata con la siguiente sentencia:

Código MySQL:
Ver original
  1.   dev.ALUMNO,
  2.   dev.NOTA1,
  3.   dev.NOTA2,
  4.   dev.NOTA3,
  5.   dev.PROMEDIO
  6.     i_alumnos.id_alumno,
  7.     CONCAT(i_alumnos.apellido, ' ', i_alumnos.nombre) ALUMNO,
  8.     SUM(IF(t_notas.id_parcial = 1, t_notas.nota, NULL)) NOTA1,
  9.     SUM(IF(t_notas.id_parcial = 2, t_notas.nota, NULL)) NOTA2,
  10.     SUM(IF(t_notas.id_parcial = 3, t_notas.nota, NULL)) NOTA3,
  11.     ROUND((SUM(t_notas.nota * (1 - ABS(SIGN(t_notas.id_parcial - 1)))) +
  12.     SUM(t_notas.nota * (1 - ABS(SIGN(t_notas.id_parcial - 2)))) +
  13.     SUM(t_notas.nota * (1 - ABS(SIGN(t_notas.id_parcial - 3))))) / COUNT(t_notas.nota), 1) PROMEDIO
  14.   FROM i_alumnos
  15.     LEFT JOIN t_notas ON i_alumnos.id_alumno = t_notas.id_alumno
  16.       AND t_notas.id_curso = '1'
  17.       AND t_notas.id_ramo = '1'
  18.       AND t_notas.semestre = '1'
  19.   GROUP by i_alumnos.id_alumno, ALUMNO
  20.   ORDER by ALUMNO) dev;
En [URL="http://sqlfiddle.com/#!2/3d9dd/44"]sqlfiddle.com[/URL] el resultado.

Debes tener presente lo que te comenta [URL="http://www.forosdelweb.com/f86/como-devolver-registros-sin-valores-1038823/#post4376297"]gnzsoloyo[/URL] del cero (0) y NULL, en este caso dejo NULL para direfenciar de una NOTA con valor cero (0) y una NOTA que no existe (NULL), pero debes tratarlos correctamente.

Espero te sea útil.
Hola wchiquito,

Gracias por la respuesta.

Yo también usé left join para intentar resolver este problema, sin embargo me pasa lo mismo que con esta consulta, ya que aunque aparezca AND t_notas.id_curso = '1', aparecen los alumnos de todos los cursos (tres alumnos de id_curso=1 y dos de id_curso=2).

Deberían aparecer solo 3, y de esos 3 solo Contreras Castro Sebastián Andrés con todas sus notas null.

Ojala pudieras ayudarme con esto. saludos
__________________
Aquí voy a escribir mi firma