5 Replies Latest reply: May 24, 2012 2:09 PM by Roberto Goes RSS

    retroativo de datas

      pessoal boa noite, estou com o seguinte problema.

       

      tenho uma tabela com varias linhas , porem tenho um campo chamado dat_cricacao

      tenho q fazer um filtro dentro de uma tabela dinamica

       

      preciso descobrir os items dessa tabela com data retroativa

       

      exemplo

       

      dat_criacao  - 30 DIAS

      dat_criacao  - 60 DIAS

      dat_criacao  - 90 DIAS

      dat_criacao  - 180 DIAS

      dat_criacao  - 365DIAS

       

      Alguem poderia me ajudar sobre esse assunto eu nao consegui uma solução ainda,, Obrigado por enquanto.

        • retroativo de datas
          Aderlan Rodrigues

          Olá Roberto,

           

          Isso vai depender do valor que está nesse campo.

           

          Se for 30, 60, 90... basta incluilo na tabela dinâmica e nas propriedades do objeto, aba apresentação, escolha esse campo e marque a opção "seletor dropdown", isso colocará um icono no rótulo da coluna que quando você clicar basta digitar qualquer valor, exemplo: ">60", 180,">20<180" e pronto, estaram selecionados, igual se faz com as listas e outros objetos.

           

          Se esse campo for data, no script crie um novo campo e calcule a diferança de dias até a data atual, como no exemplo abaixo, depois basta usar o campo e fazer o que lhe falei a cima.

           

          Abraço.

           

          Exemplo:

          LOAD dat_criacao,

              now()-dat_criacao as dias

          ...

            • retroativo de datas

              Aderlan , eu quero mostrar as quantidades de alguns produtos que estejam em um intervalo de data

               

              sem sql eu faria assim

               

              select sum(qtd_pecas)

              from tabela

              where dat_cricacao > ((sysdate+1)-30)

               

              nesse select eu consigo somar as quantidades de conforme o intervalo de data , porem no qlikview eu jogo a tabela toda , preciso fazer isso em uma tabela dinamica.

               

              exemplo

              grupo           empresa            qtd a 60 dias  qtd a 90 dias qtd a 180 dias
              AMERICA    EMPRESA 1        200                 600                950

               

              é mais ou menos isso, porem nao tenho ideia de como fazer isso no qlick view.

               

              pode me ajudar ? acho q ficou mais claro a minha duvida agora

                • retroativo de datas

                  Roberto, essa data da Criação seria sempre comparado com a data atual? Ou da seleção?

                   

                  Para data atual, eu faria um campo na mesma tabela que você está carregando esses fatos:

                   

                   

                  div(today() - dat_criacao, 30) * 30 as DIAS_RETROATIVO

                  // se a diferença for 20 dias, irá retornar 0... se for 45, irá retornar 30, se for 76 irá retornar 60 e assim por diante.

                   

                  E colocaria esse campo na dimensão e dá um sum.

                  Se quiser 'enfeitar' a descrição do campo, só concatenar...

                  'Quantidade de dias retroativo: '&div(today() - dat_criacao, 30) * 30 as DIAS_RETROATIVO

                   

                  Espero ter ajudado.

                  • retroativo de datas
                    Aderlan Rodrigues

                    Bom dia Roberto,

                     

                    Concordo com o Augusto, isso resolve para você?

                     

                    Você pode ainda usar a sua consulta SQL direto, não precisa obrigatóriamente fazer no QlikView, você usará na tabela dinâmica o resultado da tua consulta.

                     

                    Exemplo:

                    // Comando de conexão

                    SQL select sum(qtd_pecas)

                    from tabela

                    where dat_cricacao > ((sysdate+1)-30);

                • retroativo de datas

                  vlw pessoal eu fiz dessa maneira dentro da planilha mesmo

                   

                  =If((date(today()) - DAT_CRIACAO) <  30, '1- (Até 30 Dias)',

                            if((date(today()) - DAT_CRIACAO) >= 30 and (date(today()) - DAT_CRIACAO) < 60, '2-     (1 > 3 Meses)',

                                      if((date(today()) - DAT_CRIACAO) >= 60 and (date(today()) - DAT_CRIACAO) < 90, '3-    (3 > 6 Meses)',

                                                if((date(today()) - DAT_CRIACAO) >= 90 and (date(today()) - DAT_CRIACAO) < 180, '4-    (6 > 1 Ano)',

                                                          if((date(today()) - DAT_CRIACAO) >= 180 and (date(today()) - DAT_CRIACAO) <  365, '5-     (1 Ano)',

                                                            if((date(today()) - DAT_CRIACAO) >= 180 and (date(today()) - DAT_CRIACAO) >  365, '6-     ( > 1 Ano)'))))))

                   

                  deu certo vlw