10 Replies Latest reply: Oct 21, 2016 8:32 PM by Jeferson Vargas RSS

    SAFRA DE 45 DIAS

    Jeferson Vargas

      Galera boa noite,

       

      Como consigo fazer uma safra de 45 dias?

      Exemplo:

       

      Tenho um cliente que mudou a analise dos produtos e agora quer por SAFRA

      Antes disso realizava as analises por dia, semana, mês, trimestre e ano.

       

      Agora preciso analisar por SAFRA de 45 dias, então como faço isso?

      Tem algum comando especifico para SAFRA?

       

      exemplo:

       

      LOAD

       

      DATA

      PRODUTO

      VALOR

      QTD

       

      FROM MEU QVD

        • Re: SAFRA DE 45 DIAS
          mauro ponte

          Jeferson,

           

          Nao entendi muito bem.  Seu cliente quer saber a soma de valor e qtd dos ultimos 45 dias partindo de uma data informada? ou da data atual? é isso?

          • Re: SAFRA DE 45 DIAS
            Clever Anjos

            O que é uma SAFRA? Poderia detalhar melhor?

            Entendo se você tenha um tabela Calendario seria uma nova coluna com a logica necessária

              • Re: SAFRA DE 45 DIAS
                Jeferson Vargas

                Buenas meu caro Clever, caro Mauro

                 

                SAFRA: periodo de validade da carteira de produto, exemplo, recebo uma base de clientes que posso trabalhar somente em determinado periodo, tipo: do dia 01/10 ao dia 15/11 on de receberei uma nova safra de clientes e depois de algum tempo terei que fazer a analise de ambas as safras ou de de safras passadas...então SAFRA é o periodo de validade da carteira de clientes.

                 

                Tem alguma função que agrupa 45 dias? tipo do 1 ao 45 ? o máximo que consegui foi 31 dias ou selecionando dois meses e no ultimo selecionando até o dia 15

                 

                calendario.pngcalendario2.png

                  • Re: SAFRA DE 45 DIAS
                    mauro ponte

                    Jeferson,

                     

                    Tente:

                     

                    sum({<SeuCampoData={">=$(=date(SeuCampoDia&'/'&num(SeuCampoMes,'00')&'/'&SeuCampoAno,'DD/MM/YYYY'))<=$(=date(SeuCampoDia&'/'&num(SeuCampoMes,'00')&'/'&SeuCampoAno,'DD/MM/YYYY')+45)"},SeuCampoMes=,SeuCampoAno=,SeuCampoDia=>} SeuCampoValor)

                     

                    Quando voce selecionar ano, mes e dia deve contar a data de referencia e somar tudo dessa data até a data de 45 dias para frente.

                     

                    Espero que resolva seu problema.

                    • Re: SAFRA DE 45 DIAS
                      Clever Anjos

                      Tente criar um campo assim:

                      LOAD

                        Data,

                        'Safra ' & num(Floor((Data - YearStart(Data))/45)) as SAFRA;

                      LOAD

                        Date(Today()-RecNo()) as Data

                      AutoGenerate 300;

                       

                      Capturar.PNG

                        • Re: SAFRA DE 45 DIAS
                          Jeferson Vargas

                          Ótimo, quase perfeito só preciso de um ajuste:

                          Clever se eu precisar alterar a data de começo da safra por algum motivo pontual exemplo: atraso no recebimento da base de dados tipo minha safra terminou 30/03 e recebi uma nova safra apenas dia 03/04 como faço para dar start nesta nova safra a partir da data de carregamento e ja vendo por esta ótica, no lugar do campo data posso usar uma variavel que receba a data de carregamento(importação da base)? sendo assim a variavel podia ler a data da carga e neste campo data que você criou usar essa variavel e estartar a partir desta data...mas não sei como colocar isso na pratica

                            • Re: SAFRA DE 45 DIAS
                              Clever Anjos

                              Eu usei o primeiro dia do ano, você poderia usar qualquer valor

                               

                              Tipo

                              LET DataRef=Num(Date#('03/04/2016','DD/MM/YYYY'));

                               

                               


                              LOAD

                                Data,

                                'Safra ' & num(Floor((Data - $(DataRef))/45))  as SAFRA;

                              LOAD

                                Date(Today()-RecNo()) as Data

                              AutoGenerate 300;

                      • Re: SAFRA DE 45 DIAS
                        Jeferson Vargas

                        Tu é o cara brother...

                        Então o scrip aqui é para pegar o ano é isso?

                        LOAD

                          Date(Today()-RecNo()) as Data

                        AutoGenerate 300;

                         

                        aqui eu crio a variavel e digo que é essa data ok? e se eu colocar o meu campo de importação da base  nesta variavel vai começar a contar os 45d a partir dai é isso?

                         

                        LET DataRef=Num(Date#('03/04/2016','DD/MM/YYYY'));


                        Bom fiz assim por enquanto:

                        //Seleciona a maior data de carregamento

                        SAFRA2MAXDATE:

                        load Timestamp(max(DIV_DATAMATRIZ),'DD/MM/YYYY hh:mm:ss')as MAXDATA

                        FROM

                        [C:\DLPSAFRA2.csv]

                        (txt, codepage is 1252, embedded labels, delimiter is ';', msq);

                         

                        //------------------------------------------------------

                        //variavel para pegar na SAFRA2MAXDATE a ultima data de carregamento

                         

                        LET vCarga = Peek('MAXDATA',0,SAFRA2MAXDATE);

                        //------------------------------------------------------

                        drop table SAFRA2MAXDATE;

                        -------------------------------------------------------------------

                         

                        safra.png

                         

                        safra2.pngsafra3.png

                         

                        Coloquei a SAFRA para gerar usando a tabela historico onde eu armazeno todas as ocorrencias assim saberei o que aconteceu nas SAFRAS de acordo com as ocorrencias.

                        Mas como não importei nada no Qlik antes do dia 03/10 não deveria aparecer só uma SAFRA? tIPO DO DIA 03/10 até 45 dias para frente? ou até hoje?

                         

                        Tchê não entendi porque aparece Safra 947 e 948

                         

                        Bom vou dar uma boa analisada agora antes de pedir agua se não conseguir eu volto...

                        Valew

                          • Re: SAFRA DE 45 DIAS
                            Clever Anjos

                            1) "Então o scrip aqui é para pegar o ano é isso?

                            LOAD

                              Date(Today()-RecNo()) as Data

                            AutoGenerate 300;"

                            Não, isso gera um pequeno calendário como exemplo

                             

                            2)  "Tchê não entendi porque aparece Safra 947 e 948"

                            É porque você está usando campos datahora. (leia isso por favor Campos data/hora, também conhecidos como "Monstros S/A"). Trabalhe com campo data "puro" para que os cálculos sejam corretos

                            SAFRA2MAXDATE:

                            load Floor(max(DIV_DATAMATRIZ))as MAXDATA

                            FROM

                            [C:\DLPSAFRA2.csv]

                            (txt, codepage is 1252, embedded labels, delimiter is ';', msq);

                              • Re: SAFRA DE 45 DIAS
                                Jeferson Vargas

                                Depois que o cara pergunta sem analisar direito e depois lê a resposta chega de dar vergonha...bom xiru depois de pensar em um script ultra super master kkkkk acabei por usar uma solução bem simples mesmo mas que atende em contra partida já aprendi mais um pouco com essas dicas...usei da seguinte forma para realizar a SAFRA:

                                 

                                MAPSAFRAS:

                                MAPPING LOAD * INLINE [

                                DIV_DATAMATRIZ,    SAFRA

                                24/08/2016,       SAFRA 1

                                01/09/2016,       SAFRA 2

                                03/10/2016,       SAFRA 3

                                ];

                                 

                                Onde datamaltriz é a marcação de importação da safra no banco;

                                Apliquei o map no script e fucniona, ele marca os clientes que foram importados nesta data, agora cada vez que subir uma nova safra tenho que acrescentar no map...com isso ganho um tempo para aprender mais e como fazer para acrescentar a proxima safra sem ter que acrescentar no map na mão, valew