Ir para conteúdo
Fórum Script Brasil
  • 0

Agrupamento por data em select por periodo


luminatti

Pergunta

Bom dia galera, sou novo no forum, peço desculpas caso esteja upando em lugar errado, eu tenho um script de relatorio gerencial, onde o resultado deveria vir agrupado por periodo, mas nesse relatorio preciso imprimir em tela valores atuais e o last year, pra configurar o last year inseri uma subconsulta, mas essa subconsulta esta complicando minha vida, o resultado vem por dia ao inves do periodo por filial.

 

Segue script abaixo, agradeço desde ja.

 

SELECT
    A.FILIAL,
    Vendas =  SUM(CASE WHEN C.TERMINAL IN ('001','002','003') THEN VALOR_PAGO END),
    --Vendas_LY =  SUM(CASE WHEN C.TERMINAL IN ('001','002','003') AND C.DATA_VENDA = DATEADD(year,-1,C.DATA_VENDA) THEN VALOR_PAGO END),
    Vendas_LY =        (
                    SELECT SUM(VALOR_PAGO) 
                    FROM LOJA_VENDA 
                    WHERE TERMINAL IN ('001','002','003') 
                        AND CODIGO_FILIAL = C.CODIGO_FILIAL 
                        AND DATA_VENDA = DATEADD(year,-1,C.DATA_VENDA)
                    GROUP BY CODIGO_FILIAL) ,
    DATEADD(year,-1,C.DATA_VENDA), -- TESTE PARA VISUALIZAÇAO DA DATA
    --T002 =  SUM(CASE WHEN C.TERMINAL =002 THEN VALOR_PAGO END),
    --T003 =  SUM(CASE WHEN C.TERMINAL =003 THEN VALOR_PAGO END),        
    Pedidos =  SUM(CASE WHEN C.TERMINAL =100 THEN VALOR_PAGO END), 
    SUM(QTDE_TOTAL) AS QTDE_TOTAL, 
    SUM(VALOR_PAGO) AS TOTAL,
    COUNT(C.TICKET) AS TICKETS,
    SUM(QTDE_TOTAL)/COUNT(C.TICKET) AS PA,
    SUM(VALOR_PAGO)/COUNT(C.TICKET) AS MEDIA
FROM
        FILIAIS AS A,
        LOJA_FORMAS_PGTO AS B,
        LOJA_VENDA AS C,
        LOJA_VENDA_PGTO AS D,
        LOJA_VENDEDORES AS E 
    WHERE
    C.CODIGO_FILIAL     = E.CODIGO_FILIAL AND
    C.VENDEDOR          = E.VENDEDOR      AND
    D.CODIGO_FILIAL     = C.CODIGO_FILIAL      AND
    D.CODIGO_FILIAL     = E.CODIGO_FILIAL AND
    D.LANCAMENTO_CAIXA  = C.LANCAMENTO_CAIXA   AND
    D.TERMINAL          = C.TERMINAL           AND
    D.COD_FORMA_PGTO    = B.COD_FORMA_PGTO AND
    A.COD_FILIAL        = C.CODIGO_FILIAL        AND
    (
    (C.TOTAL_QTDE_CANCELADA = '0')            AND
    (C.DATA_VENDA BETWEEN '20170101' AND '20170131')) AND
      C.OPERACAO_VENDA IN ('001','002','007','008') AND  
      E.VENDEDOR_APELIDO NOT LIKE '%ATACADO%'  
      --AND A.FILIAL NOT IN ('PALMEIRAS','E-COMMERCE')       
    GROUP BY
    C.DATA_VENDA,
    A.FILIAL,
    C.CODIGO_FILIAL
    ORDER BY TOTAL DESC

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...