Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/02/2013, 17:53
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Como devolver registros sin valores

Para eso existe el LEFT JOIN:
Código MySQL:
Ver original
  1.     CONCAT(A.apellido, ' ', A.nombre) ALUMNO,
  2.     IFNULL(SUM(IF(id_parcial=1, nota, 0)), 0) nota1,
  3.     IFNULL(SUM(IF(id_parcial=2, nota, 0)), 0) nota2,
  4.     IFNULL(SUM(IF(id_parcial=3, nota, 0)), 0) nota3,
  5.     IFNULL(ROUND((sum(nota*(1-abs(sign(id_parcial-1)))) + sum(nota*(1-abs(sign(id_parcial-2)))) + sum(nota*(1-abs(sign(id_parcial-3)))))/COUNT(nota),1), 0) PROMEDIO
  6.     i_alumnos A LEFT JOIN t_notas N ON A.id_alumno = N.id_alumno
  7.         N.id_curso=1
  8.     AND N.id_ramo=1
  9.     AND N.semestre=1
  10. GROUP BY A.apellido
  11. ORDER BY A.apellido asc

Tips:
1) AS está obsoleto desde hace años.
2) Si un valor no existe para un cálculo, se pone cero (0), no NULL. NULL destruye cualquier cálculo u operación realizada con ese valor.
3) Las comillas (") no se usan para las cadenas de texto a menos que el server esté específicamente configurado para ello. Se usan apóstrofos (').
4) Los valores numéricos no se ponen entre apóstrofos o comillas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)