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
Valores acumulados
-
- Rank: Analista Sênior
- Mensagens: 135
- Registrado em: Qui, 04 Out 2007 3:36 pm
- Localização: Belo Horizonte - MG
-
- 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:
select loja, mercadoria, sum(quantidade) quantidade, ano
from
(
select loja, mercadoria, quantidade, greatest(ano, 2000) ano
from tabela
)
grup by loja, mercadoria, ano
-
- 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.
Isso mesmo. Lhe agradeço muito pela presteza e ainda pelas explicações a respeito.
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes