Relatório entre períodos

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
Pablo Moraes
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 3
Registrado em: Sex, 19 Abr 2013 11:12 am

Olá, sou novo no fórum e principalmente novo no mundo SQL, e portanto, gostaria de auxilio na elaboração de um relatório que o meu sistema não disponibiliza. Preciso de um relatório de movimentação de vendas por produto onde me mostre a quantidade total vendida e o valor total obtido nessa venda. Até ai tudo bem... o detalhe é que eu gostaria de obter um comparativo entre períodos. Por exemplo, a venda de um determinado produto do período x ao período y mas comparando-o ao mesmo período do ano anterior e a variação existente (%). A minha idéia incial é que eu possa fazer o filtro por Filial, por Supervisor, por Vendedor, por Fornecedor, por Produto, por Seção e por Departamento. Como eu disse, eu consigo desenvolver o mesmo buscando o dado entre um determinado período, utilizando BETWEEN, mas travei nesse ponto.

Desde já agradeço.
DanielNN
Moderador
Moderador
Mensagens: 641
Registrado em: Seg, 03 Set 2007 3:26 pm
Localização: Fortaleza - CE
att,

Daniel N.N.

De uma forma simples você pode fazer um UNION ALL um com o periodo desejado e outro com o mesmo período a um ano atras:

Selecionar tudo

SELECT 'PERIODO_ATUAL'
         ....
  FROM ...
WHERE ....
  AND DATA BETWEEN 'PERIODO_INI' AND 'PERIODO_FIM'

UNION ALL

SELECT 'PERIODO_ANTERIOR'
         ....
  FROM ...
WHERE ....
    AND DATA BETWEEN ADD_MONTHS('PERIODO_INI',-12) AND ADD_MONTHS('PERIODO_FIM',-12)
Algo desse tipo.
Porém isso pode falhar no periodo de fevereiro por conta do bissexto.

Ou então você usar esses 2 selects como TABELAS, e usar as condições necessárias entre os 2 para ter ambos os dados na mesma linha.
Pablo Moraes
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 3
Registrado em: Sex, 19 Abr 2013 11:12 am

Grato pela ajuda amigo vou executar aqui, obrigado.
Responder
  • Informação
  • Quem está online

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