Select com coluna do período acumulado
Bom dia pessoal.
Estou com uma dúvida na estruturação do select.
Tenho um relatório que está extraindo já informações corretamente, com base no período gerado (inicial e final)
Exemplo de como está hoje:
SELECT D.CATEGORIA, SUM(D.VALOR) AS VALOR_VENDA, D.DATA AS (MES_ANO)
FROM DUAL D
WHERE D.DATA BETWEEN '20210501' AND '20210731'
GROUP BY D.CATEGORIA, D.DATA
Retornando:
Categoria | Valor_venda | Mes_Ano
1 | 1000,00 | 05/2021
1 | 2000,00 | 06/2021
1 | 800,00 | 07/2021
2 | 500,00 | 05/2021
2 | 200,00 | 07/2021
2 | 700,00 | 06/2021
Até ai está tranquilo.
Porém foi solicitado para adicionar uma coluna YTD (Year to data - acumulado do ano) agrupando o valor total da venda do ano do filtro.
Então se foi colocado uma data do período Jan/2020 a Mar/2020, essa nova coluna tem que pegar as vendas do ano inteiro de 2020
E precisa me retornar assim:
Categoria | Valor_venda | Mes_Ano | YTD
1 | 1000,00 | 05/2021 | 15000,00
1 | 2000,00 | 06/2021 | 15000,00
1 | 800,00 | 07/2021 | 15000,00
2 | 500,00 | 05/2021 | 8000,00
2 | 200,00 | 07/2021 | 8000,00
2 | 700,00 | 06/2021 | 8000,00
(Os valores de 15000 e 8000 seria a soma do ano inteiro)
O que consegui pensar seria um subselect que tem o where com data do ano, porém nesse caso retorno mais de um resultado no subselect, não dando para usar...
Qual seria a alternativa que tenho?
Discussão (3)
Carregando comentários...