Utilize uma função analítica. Veja o exemplo, em que eu usei a função LAG (pega 
o dado da linha anterior):

drop table vendas;
create table vendas (data date, valor number);
begin
for i in 1..50 loop
insert into vendas values 
(trunc(sysdate-(i*30/10)),trunc(dbms_random.value(1,100)));
end loop;
end;
/
commit;

alter session set nls_date_format='MON';
select trunc(data,'MON') mes, sum(valor) soma_normal, sum(valor) + nvl( 
lag(sum(valor)) over(order by trunc(data,'MON')) , 0) ACUMULADO
from vendas
group by trunc(data,'MON')
order by trunc(data,'MON');

MES SOMA_NORMAL ACUMULADO
--- ----------- ---------
MAI         527       527
JUN         430       957
JUL         491       921
AGO         516      1007
SET         518      1034

[]s

Eduardo Claro

-----Original Message-----
From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of Luis 
Eduardo Trovo
Sent: terça-feira, 30 de setembro de 2008 15:24
To: oracle_br@yahoogrupos.com.br
Subject: [oracle_br] Select Acumulativo

Pessoal, boa tarde!

Existe alguma função ou alguma lógica para fazer um campo acumulativo em um 
Select? Por exemplo:

Select Mes, Sum(Valor) Soma
from Vendas
Group by Mes
Order by Mes;


Mes     Soma 
Jan     10
Fev     12
Mar     10
Abr     15


Existe como criar uma coluna que acumula os valores do campo Soma neste Select?
O resultado esperado deveria ficar da seguinte forma:

Mes     Soma    Acumulado
Jan     10      10
Fev     12      22
Mar     10      32
Abr     15      47


Alguém tem alguma idéia de resolver isso sem ter que partir para um bloco 
PL/Sql? Resolver pelo próprio Select?

Obrigado.
Luís.




      

------------------------------------

--------------------------------------------------------------------------------------------------------------------------
>Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
>responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--------------------------------------------------------------------------------------------------------------------------
>Funções, Procedures, propostas de emprego - O GRUPO ORACLE_BR TEM SEU PROPRIO 
>ESPAÇO! VISITE: http://www.oraclebr.com.br/  
------------------------------------------------------------------------------------------------------------------------
 Links do Yahoo! Grupos


Responder a