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

Cita:
Iniciado por gnzsoloyo Ver Mensaje
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.
Hola gnzsoloyo,

Bueno agradezco los tips cosiderando que he tomado referencia de pdfs algo antiguos.

Con respecto a null, lo ocupé para diferenciar entre una nota inexistente y una nota 0.

Y con respecto a la consulta, me sigue obviando al alumno Sebastián que es el que no tiene calificaciones, pero pertenece al id_curso=1 que es el mismo resultado que logre con la tabla pivote.

Saludos y atento a tu respuesta.
__________________
Aquí voy a escribir mi firma