Alguien se le ocurre como hacer esto ???

24/08/2004 - 21:48 por Roberto Sandro | Informe spam
FACTURA | CLIENTE | FECHA | MONTO | NRO.RET. | TOTAL
||-|--|-|
100 | Imsat |14/05/04 | 66 | 2
| 100
110 | Cisco |16/05/04 | 34 | 2
| 100
210 | HP |19/06/04 | 80 | 3
| 80

mirando las 2 primeras filas tienen NRO.RET. iguales, por lo tanto sumo los
montos (66 + 37 ) y lo tengo que mostrar en total (Total= 100)

y no se me ocure como hacerlo en una consulta
 

Leer las respuestas

#1 Javier Loria
24/08/2004 - 22:05 | Informe spam
Hola Roberto:
Algo como:
==SELECT NroRet
, SUM(Monto) AS Total
FROM Tabla
GROUP BY NroRet
== Te dara los montos agrupado. Luego puede unirse de la siguiente forma:
==SELECT Tabla.Factura
, Tabla.Cliente
, Tabla.Fecha
, Tabla.Monto
, Tabla.NroRet
, TablaAcumulada.Total
FROM Tabla
JOIN (SELECT NroRet
, SUM(Monto) AS Total
FROM Tabla
GROUP BY NroRet) AS TablaAcumulada.Total
ON Tabla.NroRet=TablaAcumulada.NroRet
== Si quieres que sea un acumulativo (que la primera linea de 66 y la
siguiente 103), entonces hay que cambiar la logica y construir el SELECT
interno de la siguiente forma:
SELECT T1.Factura, SUM(T2.Monto) AS Total
FROM Tabla AS T1
JOIN Tabla AS T2
ON T1.Factura>=T2.Factura
AND T1.NroRet=T2.NroRet
GROUP BY T1.Factura
== Luego lu utilizas de la siguiente forma:
==SELECT Tabla.Factura
, Tabla.Cliente
, Tabla.Fecha
, Tabla.Monto
, Tabla.NroRet
, TablaAcumulada.Total
FROM Tabla
JOIN (SELECT T1.Factura, SUM(T2.Monto) AS Total
FROM Tabla AS T1
JOIN Tabla AS T2
ON T1.Factura>=T2.Factura
AND T1.NroRet=T2.NroRet
GROUP BY T1.Factura) AS TablaAcumulada.Total
ON Tabla.Factura=TablaAcumulada.Factura
==Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"Roberto Sandro" wrote in message
news:#
FACTURA | CLIENTE | FECHA | MONTO | NRO.RET. | TOTAL
||-|--|-|
100 | Imsat |14/05/04 | 66 | 2
| 100
110 | Cisco |16/05/04 | 34 | 2
| 100
210 | HP |19/06/04 | 80 | 3
| 80

mirando las 2 primeras filas tienen NRO.RET. iguales, por lo tanto sumo


los
montos (66 + 37 ) y lo tengo que mostrar en total (Total= 100)

y no se me ocure como hacerlo en una consulta


Preguntas similares