12/05/2013, 17:29
|
| Colaborador | | Fecha de Ingreso: septiembre-2009 Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 4 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
|