Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Suma Acumulada

Estas en el tema de Suma Acumulada en el foro de SQL Server en Foros del Web. Buen día a todos, tengo un pequeño inconveniente; tengo una tabla, la cual describo a continuación y necesito hacer una suma acumulada, ¿como hago esa ...
  #1 (permalink)  
Antiguo 15/07/2008, 09:33
 
Fecha de Ingreso: marzo-2007
Mensajes: 80
Antigüedad: 17 años, 1 mes
Puntos: 1
Información Suma Acumulada

Buen día a todos, tengo un pequeño inconveniente; tengo una tabla, la cual describo a continuación y necesito hacer una suma acumulada, ¿como hago esa suma? tomando en cuenta el total, pues a partir de alli se calcula el porcentaje.

Bueno, me sirviría de igual forma hacer la suma acumulada, aunque no se tome en cuenta el total, asumientdo que el porcentaje se va ingresando manualmente o de cualquier otra forma, en si, el punto es, ¿como hacer la suma acumulada?

ejemplo:
cliente ... compras ... porcentaje ... porcentaje acumulado
a .......... 1 ................ 10% ................ 10%
b .......... 2 ................ 20% ................ 30%
c ........... 3 ................ 30% ................ 60%
d .......... 4 ................ 40% ................ 100%
Total = 10

De antemano, muchas gracias a todos
  #2 (permalink)  
Antiguo 15/07/2008, 10:52
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: Suma Acumulada

La suma debe salir de SUM(compras), si bien puede colocar la instruccion COMPUTE al final, o bien, si desea utilizar esa "suma" en el calculo de los porcentajes, no hay de otra que hacer la suma por cada renglon

SELECT CLIENTE, COMPRAS, (SELECT SUM(COMPRAS) FROM TUTABLA) AS TOTAL
FROM TUTABLA...................
  #3 (permalink)  
Antiguo 21/07/2008, 08:42
 
Fecha de Ingreso: marzo-2007
Mensajes: 80
Antigüedad: 17 años, 1 mes
Puntos: 1
Suma Acumulada

La verdad no me funciono ese codigo, lo que necesito hacer es una suma acumulada, tal como esta en la tabla de arriba, no importa si tomo en cuenta el total o no de las compras, me interesa primero hacer la sumatoria acumulada, agradezco los comentarios, muchas gracias a todos...
  #4 (permalink)  
Antiguo 21/07/2008, 15:54
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: Suma Acumulada

create table t1 (
Codigo varchar(15) not null unique,
Detalle varchar(25),
Importe money,
Porcentaje decimal (5, 2)
)
go

insert into t1 values('11111', 'xxxxxx', 100.00, 5.5)
insert into t1 values('88888', 'yyyyyy', 55.50, 4.8)
insert into t1 values('33333', 'aaaaaa', 55.00, 4.8)
insert into t1 values('99999', 'wweew', 40.00, 4.0)
go

select
a.codigo, a.detalle, a.importe, a.porcentaje,
sum(b.porcentaje) as porcentaje_acumulado
from
t1 as a
left join
t1 as b
on a.porcentaje < b.porcentaje
or (a.porcentaje = b.porcentaje and a.codigo >= b.codigo)
group by
a.codigo, a.detalle, a.importe, a.porcentaje
order by
a.porcentaje desc, a.codigo
go

drop table t1
go
  #5 (permalink)  
Antiguo 23/07/2008, 11:07
 
Fecha de Ingreso: marzo-2007
Mensajes: 80
Antigüedad: 17 años, 1 mes
Puntos: 1
De acuerdo Suma Acumulada

Excelente, agradezco el codigo que me han dado, la verdad me funciona de maravilla y es exactamente lo que estaba buscando!!!!! bueno, falta como obtener el total de la columna (compras) y a partir de ese valor, sacar el dato porcentual para luego hacer la suma acumulada, pero eso es mas sencillo; lo dificil era hacer la suma acumulada, realmente agradezco a la persona que me ayudo con esto, muchas gracias.
  #6 (permalink)  
Antiguo 23/07/2008, 11:34
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: Suma Acumulada

Bueno, como decimos por aca, "eso ya es coser y planchar", tienes resuelto el 99.99% del problema.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:15.