Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Actualizar campos de una Tabla cuando se actualize otra tabla (https://www.clubdelphi.com/foros/showthread.php?t=73657)

RedVenom 08-05-2011 01:09:38

Actualizar campos de una Tabla cuando se actualize otra tabla
 
Buenas tardes
Tengo un problemita se que ya lo vi resuelto en algun lado del club pero no lo puedo encontrar de nuevo, bueno mi problema es el siguiente: Tengo cuatro tablas que se llaman GRUPOS, ALUMNOS, MATERIAS Y CALIFICACIONES entonces en la tabla calificaciones guardo el ID del alumno, el ID de la materia y la calificacion de la materia, y en la tabla alumnos tengo el ID del alumno su nombre y lo relaciono con el Id de algun grupo, bueno entonces mi problema esta que en la tabla grupo tengo una columna creada para cada materia entonces lo que quisiera hacer es que segun el alumno y la materia a la que le coloque calificacion vaya sumando en la columna que le corresponde a la materia y al nombre del grupo donde corresponde el alumno en la tabla grupo se sume el valor agregado al que ya habia en esa columna de ese registro.
Espero haberme explicado y de antemano agradezco su valiosa ayuda.

RedVenom 08-05-2011 01:16:02

aqui les va un ejemplo para ser mas explicito
Luis Perez pertenece al grupo B y saco 10 en matematicas
Carlos Lopez pertenece al grupo B y saco 8 en matematicas
entonces cuando yo capture estas calificaciones en la tabla CALIFICACIONES
en la tabla GRUPOS en el registro del grupo B en el campo MATEMATICAS de esta tabla se debio haber realizado la suma de las dos calificaciones y ahora deberia estar el valor 18 en ese campo, y asi cuando de de alta otra calificacion se sume al valor que ya hay en ese campo y de igual forma si doy de alta calificaciones en la materia español se guarde en la columna correspondiente de la tabla grupos.

Caral 08-05-2011 01:18:47

Hola
No entiendo.
Saludos

RedVenom 08-05-2011 01:23:05

si creo que fue algo enredada mi explicacion pero no se me ocurre como hacerla mas clara, intentare de nuevo empezare por esta parte del problema quiero que cuando yo ponga una calificacion en una tabla esta se sume un campo de otra tabla.

Caral 08-05-2011 01:25:40

Hola
Eso lo entiendo.
Lo que no entiendo es como o por que le vas a sumar a luis y a carlos las calificaciones de matematicas, simplemente por que estan el el grupo B.
Que BD usas?.
Saludos

RedVenom 08-05-2011 01:29:16

Bueno es que realmente no son calificaciones si no puntos entonces al final deseo saber cuantos puntos saco determinado grupo en la ma teria matematicas o la que sea, bueno y estoy usando SQL Server Express.

Muy probablemente este errado en mi diseño de base de datos si tienen una sugerencia que facilite esta tarea sera bien recibida.

Espero su ayuda y de antemano se las agradezco.

Caral 08-05-2011 01:33:51

Hola
Tienes que hacer un update de la tabla calificaciones.
Recorrerla, ya que tendras varios nombres (alumnos) y guardarla.
Creo que lo logico es hacerlo de alumno en alumno, pero siempre sera con un update, salvo que se haga directamente en la tabla con un filtro.
Saludos

RedVenom 08-05-2011 01:40:50

Yo imaginaba hacerlo despues en el evento before post del dataset pero antes de eso guardar en una variable el dato de la calificacion y luego sumarlo al valor que ya hay en el campo, pero no se si se pueda y si sea lo correcto tambien lei que se podria hacer un procedimiento almacenado o en un trigger pero no tengo idea de como se hace en el SQL Server.

Caral 08-05-2011 01:43:42

Hola
Me da la impresion de que te complicas la vida un poco.
1- Quieres sumar los puntos de un grupo X.
2- Quieres guardarlos en una tabla.
Yo digo: Por que?, es imperativo guardar ese dato?.
Si tienes los datos por que no simplemente sumarlos y presentarlos sin alterar la tabla ?.
Saludos

RedVenom 08-05-2011 01:59:58

Bueno esa parte me agrada mas pero como lo haria en un reporte si quisiera un listado de mejor al peor grupo en matematicas por ejemplo.
Son cosas que me revuelven y se me complican ya que solo programo ocasionalmente.

Caral 08-05-2011 03:31:39

Hola
En realidad es una sencilla consulta sql.
Puedes hacerla para verla por pantalla o en un reporte, da igual.
Te recomiendo que veas o estudies acerca de sql, es necesario cuando se trabaja con tablas.
Saludos

RedVenom 08-05-2011 07:12:01

De verdad que estas cosas me revuelven mucho.
Bueno si lo que quiero saber es los puntos de un solo grupo si se me ocurre mas o menos como hago una consulta en la que solo tenga a los alumnos del grupo que quiero saber el puntaje, hago un recorrido por los registros y en una variable sumo todos los valores y despues le paso el parametro al reporte, bueno hasta ahi si creo saber como lograrlo pero que pasa si quiero el puntaje de cada uno de los grupos para que en el listado me salga de menor a mayor??
Ahi es donde pierdo la idea.

Caral 08-05-2011 15:49:44

Hola
Tendriamos que empezar por saber que campos contiene cada tabla.
Creo, por lo que veo que tienes que enlazar la tabla grupos con la de calificaciones, pero solo creo, no lo se sin saber cuales campos tienes.
Saludos

RedVenom 08-05-2011 18:05:37

Tengo relacionadas la tabla alumnos con la de calificaciones por un campo que se llama curp y la de materias con la de calicaciones por el campo id_m y la tabla grupos esta relacionada con la de alumnos por medio del campo id_g
la tabla grupos tiene los siguientes campos id_g, nombre, ubicacion y capacidad; la tabla alumnos tiene los siguientes campos curp, apaterno, amaterno, nombre, f_nac, edad, id_g; la tabla materias tiene los id_m, nombre, creditos, plan; la tabla calificaciones tiene los siguientes campos id_c, id_m, curp, calificacion, periodo

Caral 08-05-2011 20:50:50

Hola
Estoy haciendo un ejemplo en access, con lo que necesitas.
Dame un rato.
Saludos

RedVenom 08-05-2011 20:52:49

muchas gracias, no sabes cuanto te lo voy agradecer

Caral 08-05-2011 23:46:18

Hola
Hay algunas cosas que no tengo claro.
He hecho un pequeño programa para ver y filtrar:
Alunmos (de momento):
Por Curso, calificacion, materia.
Hay varias sentencias sql, me parece que seran ineresantes para que las analices.
Lo dejo ahi, mientras lo revisas y me dices con algo mas de exactitud que requieres.
Viendo este ejemplo podremos analizar mejor los requerimientos.
Saludos
PD: La BD es access, podras ver lo que he hecho.
Como veras todo funciona solamente con un query.

RedVenom 09-05-2011 21:50:12

Ya lo cheque y de ya te puedo agradecer las lineas de codigo y el apoyo, ya que un detalle que tenia con tus lineas me ayude para corregir mi error, pero bueno ahora volviendo al problema planteado lo que necesito es hacer un listado con la suma de todas las calificaciones de la materia matematicas de los integrantes de cada grupo osea que me ponga por ejemplo una lista donde aparezca el grupo B tuvo 180 (que seria la suma de las calificaciones de la materia matematicas de todos los integrantes de ese grupo) y que luego me aparezca el grupo C y asi susecivamente todos los grupos.
No se si fui mas claro

Caral 09-05-2011 22:52:21

Hola
Si maistro, ya casi lo hago.
Saludos

Caral 09-05-2011 23:44:23

Hola
En la parte de calificaciones hay dos combobox.
1- grupos, 2- materia.
Selecciona el grupo, selecciona la materia y presiona el boton ver resultado.
Saludos


La franja horaria es GMT +2. Ahora son las 05:11:55.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi