Ver Mensaje Individual
  #4 (permalink)  
Antiguo 12/05/2013, 17:29
Avatar de mortiprogramador
mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: problema con consulta facil

<saludos>
Bueno, es porque al ser una subconsulta (refiriendome al select sum()) , trae más de 1 registro.
Por esto mismo lo mejor sería hacerlo por un programa.
o mejor aún si lo haces por base de datos, sería hacer un trigger que se dispare cada vez que se le de a un alumno una nota y que sea de tipo práctica, y que se encargue de actualizar la tabla de alumnos, aunque la verdad me parece que lo mejor es que no sea guardado esa suma en base de datos, sino que siempre se actualice por consulta.
Me explico, por ej si quisiera sacar un reporte pasado un mes del total de notas por alumno, y si me voy a la columna notaPracticas, dicho reporte no contendría las notas más recientes si el calculo que actualmente haces para actualizar el campo notaPracticas no se ha ejecutado.
Y por ende, antes de hacer el SELECT del reporte necesariamente tendría que ejecutar el UPDATE para todos los alumnos, en cuyo caso me parece mucho mejor hacer el SELECT directamente sobre la tabla de las notas haciendo los filtros que se usan actualmente para el UPDATE.
La forma en que estás planteando el UPDATE serviría si el motor de base de datos pudiese hacer un cruce como el que tu propones, pero pues hasta la fecha no he visto que un motor pueda hacer algo tan elocuente.
</saludos>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Última edición por gnzsoloyo; 12/05/2013 a las 17:37 Razón: saltos de línea hacen poco legible el texto