28 Replies Latest reply: Mar 11, 2013 8:11 AM by Leonardo Osorio RSS

    Diversos campos tipo Data

      Boa Noite a todos. Sou novo na comunidade e estou estudando muito a ferramenta, estou adorando.

       

      Estou com o seguinte problema.

       

      Tenho em uma Tabela Empresas dois campos do tipo data:

      DatadeCadastro

      DatadeEvoluçãoParaContato

       

      E uma tabela Oportunidades com dois campos do tipo data:

      DataDeAberturaOportunidade

      DataDeEncerramentoOportunidade

       

      Acontece o seguinte. Eu preciso de um campo chamado Data onde eu controle todos esses campos. Tentei criar um calendário master, onde puxaria todos os campos para uma tabela nova, só que na hora de carregar, ele diz que tem referências circulares. Abaixo eu coloco o script e por gentileza, peço por favor pra alguém me dar uma luz.

       

      DATAS:

       

       

      LOAD

      IDEmpresa,

      DataDeCadastroDaEmpresa as Data,

      `ClassificaçãoDaEmpresa` as Status

      RESIDENT EMPRESAS;

      Concatenate(DATAS)



      LOAD

      IDEmpresa,

      `DataDeEvoluçãoParaContato` as Data,

      `ClassificaçãoDaEmpresa` as Status

      Resident EMPRESAS;

      Concatenate(DATAS)



      LOAD

      IDOportunidade,

      DataDeAberturaDaOportunidade as Data,

      StatusDaOportunidade as Status

      Resident OPORTUNIDADES;

      Concatenate(DATAS)



      LOAD

      IDOportunidade,

      DataDeEncerramentoDaOportunidade as Data,

      StatusDaOportunidade as Status

      Resident OPORTUNIDADES;

       

       

       

       

      Fico no aguardo e desde já agradeço a ajuda

        • Re: Diversos campos tipo Data
          Kaauan Matzenbacher

          Bom Dia,

           

          é possivel postar uma planilha com os dados? pode ser reduzido mesmo.

           

          abs.

            • Re: Diversos campos tipo Data

              Cara, estou postando um arquivo QVD de modelo e uma planilha com dados ficticios, baseado no meu problema. Como você pode ver tenho quatro listas de datas, 2 de uma tabela e 2 da outra.... o meu grande problema é juntá-las num único campo data, pra controlar todas as listas juntas.... Fico no aguardo de ajuda... Como minha versão do qlikview não é server, se puderem postar como eu tenho que fazer aqui, agradeó muito.

               

              Rommer

            • Re: Diversos campos tipo Data

              Bom Dia,

               

               

              Somente este script não demonstra o erro de referência circular.

               

               

              O Script irá gerar apenas umas tabelona "DATAS" com os campos, IdEmpresa, IdOportunidade, Status e Data.

               

               

              O problema esta que esta tabela esta fazendo referências à outras tabelas do seu script.

               

               

              Poderia mandar o script completo para que possamos ver o que pode ser feito?

               

               

              Uma idéia para ajudar com este problema é retornar desta tabela "Datas" a maior e menor data.

               

               

              Assim você consegue gerar uma tabela auxiliar e faz um tratamento condicional das suas expressões:

               

               

              Por exemplo

               

               

              AUX_DATA:

              LOAD

                   MAX(DATA) AS MAIOR_DATA,

                   MIN(DATA) AS MENOR_DATA

              RESIDENT DATAS;

               

               

              LET vMaiorData = PEEK('MAIOR_DATA', 0, AUX_DATA);

              LET vMenorData = PEEK('MENOR_DATA', 0, AUX_DATA);

               

               

              MASTER_CALENDAR:

              LOAD (vMenorData + 1) AS DATA_AUXILIAR

              AUTOGENERATE (vMaiorData - vMenorData);

               

               

              Toda vez que for selcionado uma data desta tabela não irá impactar automaticamente nos demais registros pois esta tabela não possui nenhum vinculo com outras tabelas.

               

               

              A questão está em utilziar esta data nas suas expressões como por exemplo:

               

               

              COUNT( IF( DataDeAberturaDaOportunidade = DATA_AUXILIAR, IdOportunidade) )

               

               

              Ou com set analysis

               

               

              COUNT( {<ID_A = P(ID_B)>} ID_A )

               

               

              Abraços

                • Re: Diversos campos tipo Data

                  Cara, estou postando um arquivo QVD de modelo e uma planilha com dados ficticios, baseado no meu problema. Como você pode ver tenho quatro listas de datas, 2 de uma tabela e 2 da outra.... o meu grande problema é juntá-las num único campo data, pra controlar todas as listas juntas.... Fico no aguardo de ajuda... Como minha versão do qlikview não é server, se puderem postar como eu tenho que fazer aqui, agradeó muito.

                   

                  Rommer

                    • Re: Diversos campos tipo Data
                      Leonardo Osorio

                      Seria isso neorommer?

                      • Re: Diversos campos tipo Data

                        Segue em anexo o script que gera uma tabela auxiliar com todo o período desejado em uma unica tabela.

                         

                        Abraços

                          • Re: Diversos campos tipo Data

                            Eduardo, quando recarrego, aparecem os campos... só que quando eu coloco Ctrl+T, a tabela master calendar está desvinculada do restante, ou seja, os controles ano, mes e dia não estão funcionando.... O que pode ser?

                              • Re: Diversos campos tipo Data
                                Leonardo Osorio

                                [Clientes]:

                                LOAD IDCliente,

                                     NomeCliente,

                                     DataDeCadastro,

                                     DataDeEvoluçao,

                                     StatusCliente

                                FROM

                                [..\Desktop\teste (1).xlsx]

                                (ooxml, embedded labels, table is Clientes);

                                 

                                 

                                 

                                 

                                [oportunidades]:

                                LOAD IDOportunidade,

                                     IDCliente,

                                     NomeDaOportunidade,

                                     DataAberturaOportunidade,

                                     DataFechamentoOportunidade,

                                     StatusOportunidade

                                FROM

                                [..\Desktop\teste (1).xlsx]

                                (ooxml, embedded labels, table is Oportunidades);

                                 

                                 

                                 

                                 

                                 

                                 

                                [calendario]:

                                LOAD

                                   IDCliente,

                                   DATE(DataDeCadastro,'DD/MM/YYYY') AS DATA

                                Resident Clientes;

                                Concatenate(calendario)

                                LOAD

                                   IDCliente,

                                   DATE(DataDeEvoluçao,'DD/MM/YYYY') AS DATA

                                Resident Clientes;

                                Concatenate(calendario)

                                LOAD

                                  IDCliente,

                                  DATE(DataAberturaOportunidade,'DD/MM/YYYY') AS DATA

                                Resident oportunidades;

                                Concatenate(calendario)

                                LOAD

                                  IDCliente,

                                  DATE(DataFechamentoOportunidade,'DD/MM/YYYY') AS DATA

                                Resident oportunidades;

                                • Re: Diversos campos tipo Data

                                  Você deve utilizar o campo "DATA" nas suas expressões como um filtro.

                                   

                                  Ou se preferir pode utilizar algumas Triggers (Disparadores) quando este campo (Data) for selecionada.

                                   

                                  Baseado neste seu exemplo, defina um indicador para que eu possa te montar um exemplo.

                                   

                                  Abraços

                                    • Re: Diversos campos tipo Data

                                      Eduardo, sou meio novo na ferramenta e ainda apanho com algumas coisas... deixa eu explicar pra ver se consigo me fazer entender...

                                       

                                      Copiei o script e colei no meu QVD.... mandei recarregar... até ai uma maravilha, aparece todos os campos criados no calendário....

                                       

                                      Se eu criar uma lista do campo DataDeCadastro (Print anexo - COM FILTRO), todos os campos são filtrados

                                       

                                      Só que se eu colocar um objeto Lista do campo Data (Print anexo - SEM FILTRO, o restante dos campos (NomeDoCliente, Oportunidades) não fica filtrado....

                                       

                                      O que eu queria, é que ao selecionar uma data no campo data, todas as outras listas se filtrasem juntas também.

                                       

                                      Espero que tenha me explicado... kakakakakakakaka

                                        • Re: Diversos campos tipo Data
                                          Leonardo Osorio

                                          Neorommer segue o script com ANO,MES e DIA e as DATAS , aqui os filtros funcionam

                                           

                                          SET ThousandSep='.';

                                          SET DecimalSep=',';

                                          SET MoneyThousandSep='.';

                                          SET MoneyDecimalSep=',';

                                          SET MoneyFormat='R$ #.##0,00;-R$ #.##0,00';

                                          SET TimeFormat='hh:mm:ss';

                                          SET DateFormat='DD/MM/YYYY';

                                          SET TimestampFormat='DD/MM/YYYY hh:mm:ss[.fff]';

                                          SET MonthNames='jan;fev;mar;abr;mai;jun;jul;ago;set;out;nov;dez';

                                          SET DayNames='seg;ter;qua;qui;sex;sáb;dom';

                                           

                                           

                                          [Clientes]:

                                          LOAD IDCliente,

                                               NomeCliente,

                                               IDCliente&NomeCliente,

                                               DataDeCadastro,

                                               DataDeEvoluçao,

                                               StatusCliente

                                          FROM

                                          [..\Desktop\teste (1).xlsx]

                                          (ooxml, embedded labels, table is Clientes);

                                           

                                           

                                           

                                           

                                           

                                          [oportunidades]:

                                          LOAD IDOportunidade,

                                               IDCliente,

                                               IDOportunidade & NomeDaOportunidade,

                                               NomeDaOportunidade,

                                               DataAberturaOportunidade,

                                               DataFechamentoOportunidade,

                                               StatusOportunidade

                                          FROM

                                          [..\Desktop\teste (1).xlsx]

                                          (ooxml, embedded labels, table is Oportunidades);

                                           

                                           

                                          //CALENDARIO

                                          [calendario]:

                                          LOAD

                                             IDCliente,

                                             DATE(DataDeCadastro,'DD/MM/YYYY')AS DATA,

                                             DAY(DATE(DataDeCadastro,'DD/MM/YYYY')) AS DIA,

                                             MONTH(DATE(DataDeCadastro,'DD/MM/YYYY')) AS MES,

                                             YEAR(DATE(DataDeCadastro,'DD/MM/YYYY')) AS ANO

                                          Resident Clientes;

                                          Concatenate(calendario)

                                          LOAD

                                             IDCliente,

                                             DATE(DataDeEvoluçao,'DD/MM/YYYY')AS DATA,

                                             DAY(DATE(DataDeEvoluçao,'DD/MM/YYYY')) AS DIA,

                                             MONTH(DATE(DataDeEvoluçao,'DD/MM/YYYY')) AS MES,

                                             YEAR(DATE(DataDeEvoluçao,'DD/MM/YYYY')) AS ANO

                                          Resident Clientes;

                                          Concatenate(calendario)

                                          LOAD

                                            IDCliente,

                                            DATE(DataAberturaOportunidade,'DD/MM/YYYY') AS DATA,

                                            DAY(DATE(DataAberturaOportunidade,'DD/MM/YYYY')) AS DIA,

                                            MONTH(DATE(DataAberturaOportunidade,'DD/MM/YYYY')) AS MES,

                                            YEAR(DATE(DataAberturaOportunidade,'DD/MM/YYYY')) AS ANO

                                          Resident oportunidades;

                                          Concatenate(calendario)

                                          LOAD

                                            IDCliente,

                                            DATE(DataFechamentoOportunidade,'DD/MM/YYYY') AS DATA,

                                            DAY(DATE(DataFechamentoOportunidade,'DD/MM/YYYY')) AS DIA,

                                            MONTH(DATE(DataFechamentoOportunidade,'DD/MM/YYYY')) AS MES,

                                            YEAR(DATE(DataFechamentoOportunidade,'DD/MM/YYYY')) AS ANO

                                          Resident oportunidades;

                                          • Re: Diversos campos tipo Data

                                            Segue um outro script tbm para ajudar.

                                             

                                            Abraços