Calcular acumulados con T-SQL

08/04/2004 - 17:51 por Matín López | Informe spam
¿Alguien sabes como puedo resolver esto SIN utilizar cursores?

Tengo la siguiente tabla:

Cliente Monto
A 100
B 50
C 25
D 10

Necesito devolver una columna adicional con los acumulados del monto, de
esta manera:

Cliente Monto Acumulado
A 100 100
B 50 150
C 25 175
D 10 185


Gracias.
 

Leer las respuestas

#1 Maximiliano D. A.
08/04/2004 - 19:38 | Informe spam
Hola, suponiendo que no hay dos clientes iguales aca te mando el ejemplo:

CREATE TABLE #PEPE (ID CHAR(30), MONTO INT)

INSERT INTO #PEPE VALUES('A','100')
INSERT INTO #PEPE VALUES('B','50')
INSERT INTO #PEPE VALUES('C','25')
INSERT INTO #PEPE VALUES('D','10')

SELECT id, monto,
(SELECT sum(monto) FROM #pepe e2 WHERE e2.id <= e.id) AS acumulado
FROM #pepe e
ORDER BY id


Bye


Salu2
Maxi

Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Matín López" escribió en el mensaje
news:
¿Alguien sabes como puedo resolver esto SIN utilizar cursores?

Tengo la siguiente tabla:

Cliente Monto
A 100
B 50
C 25
D 10

Necesito devolver una columna adicional con los acumulados del monto, de
esta manera:

Cliente Monto Acumulado
A 100 100
B 50 150
C 25 175
D 10 185


Gracias.







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.618 / Virus Database: 397 - Release Date: 09/03/2004

Preguntas similares