Delphi - Sum

 
Vista:

Sum

Publicado por Diana  (1 intervención) el 15/12/2009 04:57:48
Buenas a todos de ante mano gracias a todos.

Primero que todo Trabajo con BD Sqlserver, con Componentes Ado

Tengo un Ado Query donde me arroja el siguiente Resultado

CANTIDAD1 CANTIDAD2 DIFERENCIA
23,4 23,3 00,1
19,3 19,2 00,1
67,3 67,0 00,3

El Campo Diferencia viene del Query Sum(CANTIDAD1) - Sum(CANTIDAD2) As DIFERENCIA, Ahora lo que quiero es actualizar la columna CANTIDAD2 Dependiendo con la diferencia que le cotresponda.

espero y me ayuden por favor.
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
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

RE:Sum

Publicado por E.T. (1244 intervenciones) el 15/12/2009 17:33:19
Como que actualizarla, sumarle a cantidad2 la diferencia o que?. aclarando esa duda te podria ayudar, pero tambien pon el query completo por favor
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

RE:Sum

Publicado por Diana (1 intervención) el 15/12/2009 20:47:12
Gracias ET porresponder,

Si mira es sumarle a la cantidad 2 la diferencia ya directamente en la Tabla.

Gracias
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

RE:Sum

Publicado por beto (7 intervenciones) el 15/12/2009 21:21:15
hola pues no me queda claro lo que quieres hacer pon toda tu consulta de sql para ayudarte.
Ahora si entiendo bien lo que quieres es poner la cantidad2 igual a la cantidad1 ya que al sumar la diferencia te igualaria la cantidad de todos modos te dejo las dos opciones utilizando un TAdoQuery

Si es igualar Cantidad2 a cantidad1:

ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Update NOMBRETABLA set cantidad2 = cantidad1');
ADOQuery1.ExecSQL;

Si lo que quieres es sumar la diferencia usa:

ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Update NOMBRETABLA set cantidad2 = cantidad2 + (cantidad1 - cantidad2)');
ADOQuery1.ExecSQL;
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

RE:Sum

Publicado por Diana (1 intervención) el 15/12/2009 21:59:52
Hola beto Gracias

Si mira lo que quiero es Sumar la Diferencia pero resulta que cada Cantidad esta amarrada a un Campo IdMovimiento y este tiene un idMovimiento detalle.

Digamos que tengo

IdMovimiento IdMovimientoDetalle Cantidad1 Cantidad2
001 - 67 - 85 - 84
001 - 67 - 85 - 84
001 - 67 - 85 - 84
002 - 68 - 20 - 18
002 - 68 - 20 - 18

HAora lo que quiero es que la diferencia me la sume en la cantidad2 pero del primer registro de cada IdMovimiento quedando a si

IdMovimiento IdMovimientoDetalle Cantidad1 Cantidad2
001 - 67 - 85 - 85
001 - 67 - 85 - 84
001 - 67 - 85 - 84
002 - 68 - 20 - 20
002 - 68 - 20 - 18

Les agradezco yme colaboren
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

RE:Sum

Publicado por beto (29 intervenciones) el 15/12/2009 23:48:19
si tu tabla tiene una indice primario numerico es facil esta seria la sentencia

ID IdMovimiento IdMovimientoDetalle Cantidad1 Cantidad2
1 - 001 - 67 - 85 - 85
2 - 001 - 67 - 85 - 84
3 - 001 - 67 - 85 - 84
4 - 002 - 68 - 20 - 20
5 - 002 - 68 - 20 - 18

update nombretabla
set cantidad2 = cantidad2 + (cantidad1 - cantidad2)
where (ID =
(SELECT MIN(I2.ID)
FROM nombretabla I2
WHERE Idmovimiento = I2.Idmovimiento
AND idmovimientodetalle = I2. idmovimientodetalle))
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

RE:Sum

Publicado por Diana (2 intervenciones) el 16/12/2009 16:36:43
Hola Beto

Te cuento que hice lo qu me dijistes pero, lo que hace es que inserta otro registro mas con diferencia y no se lo suma a ningun idMovimiento.

Y si efectivamente tengo un ID Primario

Te agradezco y me ayudes
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