none
Ajuda para agrupar os dias. RRS feed

  • Pergunta

  • Bom dia!

    Tenho uma query tipo um consolidado, então tenho 3 canais de vendas e com a query que estou usando, ele traz isso como retorno, mas não queria que filtrasse 1 dia só (d-1) pq quero ter como filtrar datas retroativas, tipo dez/2013 ou abr/2013, etc..tipo sempre 1 ano pra traz, mas com filtro mensal, nao o ano todo..mas se tiro o campo dia, obviamente ele me traz várias linhas, 1/dia pra cada canal..e na vdd queria q continuasse trazendo apenas 1 linha por canal...alguem pode ajudar?

    Script d-1

    declare @Competencia varchar(6) = '201404'SELECT nome_canal, venda_orcada_total, real_processada, estorno, previsao_venda, percentual_atingido_real_orcada,crescimento_mes_ano_anterior, margem_liquida, percentual_atingido_mesFROM ft_venda_3a_visao WHERE tipo_agrupamento = 'C' AND tipo_classificacao = 'G'AND codigo_canal IN (5,6,8)  AND ano = left(@Competencia,4)AND mes  = right(@Competencia,2)AND DIA  =  DAY(GETDATE()-1)GROUP BY	nome_canal, venda_orcada_total, real_processada, estorno, previsao_venda, percentual_atingido_real_orcada,crescimento_mes_ano_anterior, margem_liquida, percentual_atingido_mes

    No script comentei a linha que traz o dia, o que fez com que o retorno fosse de 72 linhas e o q preciso é q retorne apenas 3, tipo um resultado consolidado de um getdate() que fosse um between do dia 1 até o total de cada mês..um exemplo:

    Estamos em abril, dia 25, entao traria 1 linha por canal com o valor total somado até ontem (d-1), em fevereiro/2014 seria a mesma coisa mas de 28 dias completos..

    Por favor uma ajuda.

    Grato desde já.

     


    sexta-feira, 25 de abril de 2014 14:26

Todas as Respostas

  • Cara, creio que você terá que utilizar cursores, tipo o corpo do primeiro cursor é o cursor 02, e o corpo do cursor 02 é o que se deseja fazer por dia.

    é lento mas é funcional.

    Cursor 01 pega <mes01> ,

    Cursor 02 pega o <dia01>

        corpo do que se quer realizar

    fetch next from do cursor 02

    end

    fecha o cursor 02

    fetch next from do cursor 01

    end

    close cursor 01


    Graduado DBA Inforium-MG; Especializado Analise BD CEFET-MG; MCTS;

    sexta-feira, 25 de abril de 2014 21:53
  • Ricardo,

    A sugestão do Hudson, pode até ser uma possível solução, mas gostaria de entender melhor.

    Você deseja realizar uma soma dos valores de acordo com um determinado mês?

    Não seria o caso se primeiro fazer uma query realizando a somatória de cada mês e com base nesta query apresentar os resultados que seja trabalhar?

    Você consegui agrupar os valores por mês?


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    segunda-feira, 28 de abril de 2014 16:47