SQL Server - UPDATE CON SUM ENTRE DOS TABLAS RELACIONADAS

 
Vista:
Imágen de perfil de Mónika

UPDATE CON SUM ENTRE DOS TABLAS RELACIONADAS

Publicado por Mónika (1 intervención) el 30/07/2024 22:23:13
Holas,
Tengo dos tablas para realizar una relación de pagos de un grupo entonces una es la principal y la otra es la detallada con los estudiantes. Pero necesito totalizar la detallada y el total llevarlo a la principal. La siguiente consulta me lo permite hacer pero solo toma la suma de la primera relación de pago y ese valor lo carga para todas las demás relaciones. Me pueden indicar que me falta para que sume y totalice por relación. Gracias

UPDATE AGADT5RelacionPago
SET VAsignaturas = R.TRelacion
FROM AGADT5RelacionPago INNER JOIN
AGADT5RelacionPagoAsignatura AS AGADT5RelacionPagoAsignatura ON
AGADT5RelacionPago.IdRelacion = AGADT5RelacionPagoAsignatura.IdRelacion CROSS JOIN
(SELECT SUM(AGADT5RelacionPagoAsignatura.Valor) AS TRelacion,
AGADT5RelacionPago.IdRelacion
FROM AGADT5RelacionPagoAsignatura AS AGADT5RelacionPagoAsignatura INNER JOIN
AGADT5RelacionPago AS AGADT5RelacionPago ON
AGADT5RelacionPagoAsignatura.IdRelacion = AGADT5RelacionPago.IdRelacion
GROUP BY AGADT5RelacionPago.IdRelacion) AS R

Si no le agrego el From del Update igual hace lo mismo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Plutarco
Val: 122
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

UPDATE CON SUM ENTRE DOS TABLAS RELACIONADAS

Publicado por Plutarco (48 intervenciones) el 31/07/2024 20:21:23
Hola Mónika, no entiendo al 100 tu requerimiento, pero...

En tu subconsulta ya tienes la sumatoria de tu tabla AGADT5RelacionPagoAsignatura (que es la secundaria supongo) y está agrupada por IdRelacion, eso te da la sumatoria buscada, ni siquiera tendrías que relacionarla con AGADT5RelacionPago (que creo que es la principal) a menos que quisieras filtrar algo de la tabla principal.

Entonces tu subconsulta quedaría así:
(SELECT SUM(rpa.Valor) AS TRelacion, rpa.IdRelacion
FROM AGADT5RelacionPagoAsignatura AS rpa
GROUP BY rpa.IdRelacion) AS R

Adecuando tu consulta, el Update quedaría:
UPDATE AGADT5RelacionPago
SET VAsignaturas = R.TRelacion
FROM AGADT5RelacionPago AS rp JOIN
(SELECT SUM(rpa.Valor) AS TRelacion, rpa.IdRelacion
FROM AGADT5RelacionPagoAsignatura AS rpa
GROUP BY rpa.IdRelacion) AS R ON R.IdRelacion = rp.IdRelacion

Espero te sirva la observación.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar