suma acumulada

25/08/2005 - 17:51 por Looser | Informe spam
me gustaria obtener los resultado de acumulado y almacenarlos en una
columna

me explico
select valor,(algo) as resultado_esperado from vista order by .

valor | resultado_esperado
2 |2
1 |3
5 |10
4 |14
3 |17

Preguntas similare

Leer las respuestas

#6 Looser
25/08/2005 - 23:45 | Informe spam
muchas gracias a todos lo logre realizar gracias a ustedes pero queda
un DETALLe lo que pasa es que estoy sumando valores numeric con 2
decimales pero el resultado me lo da en entero como se puede
solucionar?????

select *,'ind'=0,'suma'=0 into #tbl from vista_optimo

update #tbl
set ind = 1,
suma = total_neto
Where total_neto in (select top 1 total_neto
from #tbl)


while exists ( select 1
From #tbl
Where ind = 0
)
Begin
update #tbl
set ind = 1,
suma = f_sum + total_neto
From (Select sum(total_neto) f_sum
From #tbl
Where ind = 1) tbl1
Where total_neto in (select top 1 total_neto
from #tbl
where ind = 0)
End


select * from #tbl


Drop table #tbl
Respuesta Responder a este mensaje
#7 Alejandro Mesa
26/08/2005 - 14:31 | Informe spam
Por que no posteas la estructura y unos datos de ejemplo, asi como el
resultado esperado?

No veo porque escojer esta solucion para lograr lo que deseas, a la final
sigues procesando las filas una por una y eso brinda menor rendimiento
comparado con una solucion basado en conjuntos. Ademas, la sentencia:

update #tbl
set ind = 1,
suma = f_sum + total_neto
From (Select sum(total_neto) f_sum
From #tbl
Where ind = 1) tbl1
Where total_neto in (select top 1 total_neto
from #tbl
where ind = 0)



no garantiza que las filas sean procesadas en el orden correcto. Tarde o
temprano encontraras que sql server proceso primero el valor 4 que el 5 (de
acuerdo a tu primer jemplo).


AMB

"Looser" wrote:

muchas gracias a todos lo logre realizar gracias a ustedes pero queda
un DETALLe lo que pasa es que estoy sumando valores numeric con 2
decimales pero el resultado me lo da en entero como se puede
solucionar?????

select *,'ind'=0,'suma'=0 into #tbl from vista_optimo

update #tbl
set ind = 1,
suma = total_neto
Where total_neto in (select top 1 total_neto
from #tbl)


while exists ( select 1
From #tbl
Where ind = 0
)
Begin
update #tbl
set ind = 1,
suma = f_sum + total_neto
From (Select sum(total_neto) f_sum
From #tbl
Where ind = 1) tbl1
Where total_neto in (select top 1 total_neto
from #tbl
where ind = 0)
End


select * from #tbl


Drop table #tbl


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida