Valores acumulados

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
edson.amorim
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 135
Registrado em: Qui, 04 Out 2007 3:36 pm
Localização: Belo Horizonte - MG

Caro(a) colega,

tenho varios registros que resgistram valores por ano, quero gerar uma consulata em que eu acumulo valçores por ano e para oas antos anteriores a 2000 eu coloco os acumulo os valores no ano 2000 e acima dele eu acumulo em cada ano normalmente, ou seja; 2001 eu acumulo em 2001, 2002 em 2002 e assim por diante até 2012.
exemplo:
loja, Mercadoria, quantidade, ano
01 , abacaxi , 150 , 1998
01, abacaxi, 50 , 1999
01, abacaxi, 75, 2001
02, abacaxi, 20, 2000
02, abacaxi, 10, 2001
---

resultado:
loja, mercadoria, quantidade, ano
01, abacaxi, 200, 2000
01, abacaxi, 75, 2001
02, abacaxi, 20, 2000
02, abacaxi, 10, 2001

--
Atenciosamente,

Edson
rogenaro
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Sex, 30 Mar 2007 7:26 pm
Localização: Londrina - PR
Rafael O. Genaro

Você poderia usar a função greatest, que retorna maior valor entre os parâmetros de entrada para substituir os anos inferiores a 2000:

Selecionar tudo

select loja, mercadoria, sum(quantidade) quantidade, ano
from
(
  select loja, mercadoria, quantidade, greatest(ano, 2000) ano
  from tabela
)
grup by loja, mercadoria, ano
edson.amorim
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 135
Registrado em: Qui, 04 Out 2007 3:36 pm
Localização: Belo Horizonte - MG

Perfeito Rafael,

Isso mesmo. Lhe agradeço muito pela presteza e ainda pelas explicações a respeito.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 9 visitantes