26 Replies Latest reply: Dec 7, 2016 10:32 AM by maicon mello RSS

    Associar Calendário Master com Tabelas em Banco Oracle

    Diogo Boff

      Boa Tarde

       

      Pessoal, criei um calendário master via script no SENSE porém não estou conseguindo associar ele as tabelas oriundas de minha base de dados em Oracle.

      Quando utilizo o calendário gerado como dimensão e ou filtro meus gráfico dão erro.

      Na aba de Visualizador de Modelo de Dados, a tabela calendário (master) aparece isolada.

      Alguém pode me ajudar a fazer esta associação?

        • Re: Associar Calendário Master com Tabelas em Banco Oracle
          maicon mello

          Olá Diogo, na leitura da tabela, muito provável que na sua tabela esta campo DataTime.

           

          Exemplo 01/10/2016 17:44:22

           

          Ou formato americana da data.

           

          Portanto na leitura faça :

           

          Load Date(floor(Campooracledata),'DD/MM/AAAA') as Datanova;

           

          No seu calendário master o campo data tem que estar nesse mesmo formato e mesmo nome.

           

          Datanova.

            • Re: Associar Calendário Master com Tabelas em Banco Oracle
              Diogo Boff

              Boa Tarde

               

              Realmente tenho este problema. N SENSE, eu não sei como renomear as tabelas que vem do banco, e já tentei usar esta expressão criando uma dimensão master para as datas.

              Utilizei a instrução floor como filtro para pegar somente a data, porém no gráfico aparece a data como formato numérico (numero decimal de referência).

              Devo estar deixando algum detalhe passar.

              O script que estou utilizando é este:

               

              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 FirstWeekDay=6;

              SET BrokenWeeks=1;

              SET ReferenceDay=0;

              SET FirstMonthOfYear=1;

              SET CollationLocale='pt-BR';

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

              SET LongMonthNames='janeiro;fevereiro;março;abril;maio;junho;julho;agosto;setembro;outubro;novembro;dezembro';

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

              SET LongDayNames='segunda-feira;terça-feira;quarta-feira;quinta-feira;sexta-feira;sábado;domingo';

              //===================================================================================================

               

               

              // Criar calendario

               

               

              LET vMesInicial = Date('01/01/2011');

              LET vMesFinal = Date(MonthEnd(Today()));

               

               

              //Criação da tabela Calendário utilizando o comando Autogenerate(), onde a quantidades de linhas é a diferença entre as variáveis criadas anteriormente.

               

               

              CALENDARIO:

              LOAD

              [Data] as Data,

              Day(Data) as Dia,

              Month(Data) as Mês,

              Year(Data) as Ano,

              DayNumberOfQuarter(Data) as [Dia Trimestre],

              DayNumberOfYear(Data) as [Dia Ano],

              MonthName(Data) as [Mes Ano],

              QuarterName(Data) as [Quarter],

              Week(Data) as [Semana],

              ceil(Month(Data)/3)&'º Trim' as [Trimestre],

              WeekDay(Data) as [Dia Semana];

              LOAD

              Date(MonthEnd(Today())- Recno()+1,'YYYY/MM/DD') as [Data]

              AUTOGENERATE(vMesFinal-vMesInicial+1);

               

               

              Porém não tenho acesso ao script de carga da dados do SENSE.

                • Re: Associar Calendário Master com Tabelas em Banco Oracle
                  maicon mello

                  Fica dificil ajudar assim.

                   

                  Mas esta usando o floor ??

                   

                  Faça assim Date(Floor(Campodata),'DD/MM/AAAA') as data

                    • Re: Associar Calendário Master com Tabelas em Banco Oracle
                      Diogo Boff

                      Olá Maicon,

                      Você precisa de alguma outra informação?

                      Sou novo no Qlik, e estou aprendendo a implementar.

                      No Qlik sense, não tenho acesso ao carregamento de dados, será que posso incluir uma coluna na tabela fato com uma cópia da data e dai colocar o mesmo nome do calendário master?

                        • Re: Associar Calendário Master com Tabelas em Banco Oracle
                          maicon mello

                          Diego , pq você diz que não tem acesso ?

                          Não estou entendendo.

                          Desenvolvimento é relativamente o mesmo.

                          Você quer dizer que carregou uma tabela e não consegue editar o fonte isso ?

                          Você esta com Sense Desktop ?

                          Abra essa opção ai conforme a imagem e mande um print. print sense.PNG

                            • Re: Associar Calendário Master com Tabelas em Banco Oracle
                              Diogo Boff

                              Maicon,

                               

                              Acho que consegui.

                              No editor de tabelas, eu criei um campo calculado com o formato Date, dai a coluna fica somente com as datas.

                              Vou tentar por aqui.

                                • Re: Associar Calendário Master com Tabelas em Banco Oracle
                                  Diogo Boff

                                  Maicon,

                                  não funcionou;

                                  segue o print.

                                  é só digitar como você fez (declarar a coluna)?

                                  print.png

                                  • Re: Associar Calendário Master com Tabelas em Banco Oracle
                                    Diogo Boff

                                    Digitei como você falou e aparecei este erro

                                    erro.png

                                      • Re: Associar Calendário Master com Tabelas em Banco Oracle
                                        maicon mello

                                        Manda o Arquivo qvf ai... Você tem uma sessão bloqueada, clica no cadeado e faça o desbloqueio, ai sim ele vai habilitar vc alterar o código. Ou manda o QVF.

                                          • Re: Associar Calendário Master com Tabelas em Banco Oracle
                                            Diogo Boff

                                            Como faço para gerar o qvf?

                                            • Re: Associar Calendário Master com Tabelas em Banco Oracle
                                              Diogo Boff

                                              O problema de desbloquear é este.

                                              desbloqueio.png

                                                • Re: Associar Calendário Master com Tabelas em Banco Oracle
                                                  maicon mello

                                                  Isso ai, pode efetuar o desbloqueio.

                                                  Ali no load você faz as alterações.

                                                    • Re: Associar Calendário Master com Tabelas em Banco Oracle
                                                      Diogo Boff

                                                      Bom dia

                                                      Maicon, obrigado pela ajuda.

                                                      Realizei as alterações.

                                                      O Script ficou assim:

                                                       

                                                      // Criar calendario

                                                       

                                                       

                                                      LET vMesInicial = Date('01/01/2011');

                                                      LET vMesFinal = Date(MonthEnd(Today()));

                                                       

                                                       

                                                      //Criação da tabela Calendário utilizando o comando Autogenerate(), onde a quantidades de linhas é a diferença entre as variáveis criadas anteriormente.

                                                       

                                                       

                                                      CALENDARIO:

                                                      LOAD

                                                      [Data] as Data,

                                                      Day(Data) as Dia,

                                                      Month(Data) as Mês,

                                                      Year(Data) as Ano,

                                                      DayNumberOfQuarter(Data) as [Dia Trimestre],

                                                      DayNumberOfYear(Data) as [Dia Ano],

                                                      MonthName(Data) as [Mes Ano],

                                                      QuarterName(Data) as [Quarter],

                                                      Week(Data) as [Semana],

                                                      ceil(Month(Data)/3)&'º Trim' as [Trimestre],

                                                      WeekDay(Data) as [Dia Semana];

                                                      LOAD

                                                      Date(MonthEnd(Today())- Recno()+1,'DD/MM/YYYY') as [Data]

                                                      AUTOGENERATE(vMesFinal-vMesInicial+1);

                                                      LIB CONNECT TO [Oracle_192.168.200.100];

                                                       

                                                       

                                                      //=================================================================================================

                                                       

                                                       

                                                      [NSTBA001]:

                                                      LOAD

                                                        [NSA001_NOTA] AS [NSB001_NOTA-NSA001_NOTA],

                                                        Date(Floor([NSA001_DTEMISSAO]),'DD/MM/YYYY') AS Data,

                                                        [NSA001_CLIENTE] AS [PPA001_PESSOA-NSA001_CLIENTE],

                                                        [NSA001_CONDICAO] AS [NSA001_CONDICAO],

                                                        [NSA001_PORTADOR] AS [NSA001_PORTADOR],

                                                        [NSA001_CANCELADA] AS [NSA001_CANCELADA],

                                                        [NSA001_TOTALPROD] AS [NSA001_TOTALPROD],

                                                        [NSA001_TOTALNOTA] AS [NSA001_TOTALNOTA],

                                                        [NSA001_TOTALIMPOSTOS] AS [NSA001_TOTALIMPOSTOS],

                                                        [NSA001_IMPOSTOS] AS [NSA001_IMPOSTOS],

                                                        [NSA001_NOME] AS [NSA001_NOME],

                                                        [NSA001_PAIS] AS [NSA001_PAIS],

                                                        [NSA001_UF] AS [NSA001_UF],

                                                        [NSA001_CIDADE] AS [NSA001_CIDADE],

                                                        [NSA001_ENDERECO] AS [NSA001_ENDERECO],

                                                        [NSA001_TELEFONE] AS [NSA001_TELEFONE];

                                                       

                                                         

                                                      SELECT "NSA001_NOTA",

                                                        "NSA001_DTEMISSAO",

                                                        "NSA001_CLIENTE",

                                                        "NSA001_CONDICAO",

                                                        "NSA001_PORTADOR",

                                                        "NSA001_CANCELADA",

                                                        "NSA001_TOTALPROD",

                                                        "NSA001_TOTALNOTA",

                                                        "NSA001_TOTALIMPOSTOS",

                                                        "NSA001_IMPOSTOS",

                                                        "NSA001_NOME",

                                                        "NSA001_PAIS",

                                                        "NSA001_UF",

                                                        "NSA001_CIDADE",

                                                        "NSA001_ENDERECO",

                                                        "NSA001_TELEFONE"

                                                      FROM "EFFECTIVE"."NSTBA001";

                                                       

                                                       

                                                      [NSTBB001]:

                                                      LOAD

                                                        [NSB001_NOTA] AS [NSA001_NOTA-NSB001_NOTA],

                                                        [NSB001_PRODUTO] AS [NSB001_PRODUTO],

                                                        [NSB001_QTDE] AS [NSB001_QTDE],

                                                        [NSB001_PRECOLIQUIDO] AS [NSB001_PRECOLIQUIDO],

                                                        [NSB001_NATUREZA] AS [NSB001_NATUREZA],

                                                        Date(Floor([NSB001_DTFATURAMENTO]),'DD/MM/YYYY') AS Data,

                                                        [NSB001_OPERACAO] AS [NSB001_OPERACAO],

                                                        [NSB001_ASSTECNICA] AS [NSB001_ASSTECNICA],

                                                        [NSB001_TOTALIMPOSTOS] AS [NSB001_TOTALIMPOSTOS],

                                                        [NSB001_IMPOSTOS] AS [NSB001_IMPOSTOS],

                                                        [NSB001_PRODDESC] AS [NSB001_PRODDESC],

                                                        [NSB001_TOTALFINANC] AS [NSB001_TOTALFINANC];

                                                       

                                                      SELECT "NSB001_NOTA",

                                                        "NSB001_PRODUTO",

                                                        "NSB001_QTDE",

                                                        "NSB001_PRECOLIQUIDO",

                                                        "NSB001_NATUREZA",

                                                        "NSB001_DTFATURAMENTO",

                                                        "NSB001_OPERACAO",

                                                        "NSB001_ASSTECNICA",

                                                        "NSB001_TOTALIMPOSTOS",

                                                        "NSB001_IMPOSTOS",

                                                        "NSB001_PRODDESC",

                                                        "NSB001_TOTALFINANC"

                                                      FROM "EFFECTIVE"."NSTBB001";

                                                       

                                                       

                                                       

                                                       

                                                      [PPTBA001]:

                                                      LOAD

                                                        [PPA001_PESSOA] AS [NEB001_FORNECEDOR-PPA001_PESSOA],

                                                        [PPA001_NOME] AS [PPA001_NOME],

                                                        [PPA001_FANTASIA] AS [PPA001_FANTASIA],

                                                        [PPA001_ENDERECO] AS [PPA001_ENDERECO],

                                                        [PPA001_CIDADE] AS [MUNICIPIO-PPA001_CIDADE],

                                                        [PPA001_CEP] AS [PPA001_CEP],

                                                        [PPA001_UF] AS [PPA001_UF-UF],

                                                        [PPA001_PAIS] AS [PPA001_PAIS],

                                                        [PPA001_CNPJ] AS [PPA001_CNPJ],

                                                        [PPA001_INDFORNECEDOR] AS [PPA001_INDFORNECEDOR],

                                                        [PPA001_INDCLIENTE] AS [PPA001_INDCLIENTE],

                                                        [PPA001_INDTRANPORTADORA] AS [PPA001_INDTRANPORTADORA],

                                                        [PPA001_TIPOPESSOA] AS [PPA001_TIPOPESSOA],

                                                        [PPA001_BAIRRO] AS [PPA001_BAIRRO],

                                                        [PPA001_ID] AS [PPA001_ID];

                                                         

                                                      SELECT "PPA001_PESSOA",

                                                        "PPA001_NOME",

                                                        "PPA001_FANTASIA",

                                                        "PPA001_ENDERECO",

                                                        "PPA001_CIDADE",

                                                        "PPA001_CEP",

                                                        "PPA001_UF",

                                                        "PPA001_PAIS",

                                                        "PPA001_CNPJ",

                                                        "PPA001_INDFORNECEDOR",

                                                        "PPA001_INDCLIENTE",

                                                        "PPA001_INDTRANPORTADORA",

                                                        "PPA001_TIPOPESSOA",

                                                        "PPA001_BAIRRO",

                                                        "PPA001_ID"

                                                      FROM "EFFECTIVE"."PPTBA001";

                                                       

                                                       

                                                      [NETBA001]:

                                                      LOAD

                                                        [NEA001_FORNECEDOR] AS [PPA001_PESSOA-NEA001_FORNECEDOR],

                                                        [NEA001_NOTA] AS [NEA001_NOTA],

                                                        [NEA001_SERIE] AS [NEA001_SERIE],

                                                        Date(Floor([NEA001_DTEMISSAO]),'DD/MM/YYYY') AS Data,

                                                        [NEA001_TOTALPROD] AS [NEA001_TOTALPROD],

                                                        [NEA001_TOTALNOTA] AS [NEA001_TOTALNOTA],

                                                        [NEA001_TOTALACRE] AS [NEA001_TOTALACRE],

                                                        [NEA001_TOTALIMPOSTOS] AS [NEA001_TOTALIMPOSTOS],

                                                        [NEA001_IMPOSTOS] AS [NEA001_IMPOSTOS],

                                                        [NEA001_CANCELADA] AS [NEA001_CANCELADA],

                                                        [NEA001_TOTALFINANC] AS [NEA001_TOTALFINANC],

                                                        [NEA001_TOTALBRUTO] AS [NEA001_TOTALBRUTO];

                                                       

                                                       

                                                      SELECT "NEA001_FORNECEDOR",

                                                        "NEA001_NOTA",

                                                        "NEA001_SERIE",

                                                        "NEA001_DTEMISSAO",

                                                        "NEA001_TOTALPROD",

                                                        "NEA001_TOTALNOTA",

                                                        "NEA001_TOTALACRE",

                                                        "NEA001_TOTALIMPOSTOS",

                                                        "NEA001_IMPOSTOS",

                                                        "NEA001_CANCELADA",

                                                        "NEA001_TOTALFINANC",

                                                        "NEA001_TOTALBRUTO"

                                                      FROM "EFFECTIVE"."NETBA001";

                                                       

                                                       

                                                      [NETBA003]:

                                                      LOAD

                                                        [NEA003_FORNECEDOR] AS [PPA001_PESSOA-NEA003_FORNECEDOR],

                                                        [NEA003_NOTA] AS [NEA001_NOTA-NEB001_NOTA],

                                                        [NEA003_VALOR] AS [NEA003_VALOR],

                                                        [NEA003_FOA001_ID] AS [NEA003_FOA001_ID],

                                                        [NEA003_NEA001_ID] AS [NEA003_NEA001_ID];

                                                        //[DATE_CREATED] AS [DATE_CREATED];

                                                       

                                                      SELECT "NEA003_FORNECEDOR",

                                                        "NEA003_NOTA",

                                                        "NEA003_VALOR",

                                                        "NEA003_FOA001_ID",

                                                        "NEA003_NEA001_ID"

                                                        //"DATE_CREATED"

                                                      FROM "EFFECTIVE"."NETBA003";

                                                       

                                                       

                                                       

                                                       

                                                      [NETBB001]:

                                                      LOAD

                                                        [NEB001_FORNECEDOR] AS [NEB001_FORNECEDOR-PPA001_PESSOA],

                                                        [NEB001_NOTA] AS [NEA001_NOTA-NEB001_NOTA],

                                                        [NEB001_PRODUTO] AS [NEB001_PRODUTO],

                                                        [NEB001_SERIE] AS [NEB001_SERIE],

                                                        [NEB001_LINHA] AS [NEB001_LINHA],

                                                        [NEB001_QUANTIDADE] AS [NEB001_QUANTIDADE],

                                                        [NEB001_PRECOLIQUIDO] AS [NEB001_PRECOLIQUIDO],

                                                        [NEB001_NATUREZA] AS [NEB001_NATUREZA],

                                                        [NEB001_OPERACAO] AS [NEB001_OPERACAO],

                                                        [NEB001_CODCLAFISCAL] AS [NEB001_CODCLAFISCAL],

                                                        [NEB001_CLAFISCAL] AS [NEB001_CLAFISCAL],

                                                        [NEB001_ORDCOMPRA] AS [NEB001_ORDCOMPRA],

                                                        [NEB001_LINHAOC] AS [NEB001_LINHAOC],

                                                        [NEB001_TOTALIMPOSTOS] AS [NEB001_TOTALIMPOSTOS],

                                                        [NEB001_PRODDESC] AS [NEB001_PRODDESC],

                                                        [NEB001_FOA001_ID] AS [NEB001_FOA001_ID],

                                                        [NEB001_NEA001_ID] AS [NEB001_NEA001_ID-NSA001_NOTA];

                                                        //Date(Floor([DATE_CREATED]),'DD/MM/AAAA') AS Data

                                                       

                                                      SELECT "NEB001_FORNECEDOR",

                                                        "NEB001_NOTA",

                                                        "NEB001_PRODUTO",

                                                        "NEB001_SERIE",

                                                        "NEB001_LINHA",

                                                        "NEB001_QUANTIDADE",

                                                        "NEB001_PRECOLIQUIDO",

                                                        "NEB001_NATUREZA",

                                                        "NEB001_OPERACAO",

                                                        "NEB001_CODCLAFISCAL",

                                                        "NEB001_CLAFISCAL",

                                                        "NEB001_ORDCOMPRA",

                                                        "NEB001_LINHAOC",

                                                        "NEB001_TOTALIMPOSTOS",

                                                        "NEB001_PRODDESC",

                                                        "NEB001_FOA001_ID",

                                                        "NEB001_NEA001_ID"

                                                        //"DATE_CREATED"

                                                      FROM "EFFECTIVE"."NETBB001";

                                                       

                                                       

                                                      [Plan1]:

                                                      LOAD

                                                        [UF] AS [PPA001_UF-UF],

                                                        [Capital] AS [Capital],

                                                        [Região] AS [Região],

                                                        [Estado] AS [Estado];

                                                      LOAD [UF],

                                                        [Capital],

                                                        [Região],

                                                        [Estado]

                                                      FROM [lib://Qlik/Estados por Região.xlsx]

                                                      (ooxml, embedded labels, table is Plan1);

                                                       

                                                       

                                                      [Sheet1$]:

                                                      LOAD

                                                        [ID] AS [ID],

                                                        [LATITUDE] AS [LATITUDE],

                                                        [LONGITUDE] AS [LONGITUDE],

                                                        [Mun/UF] AS [Mun/UF],

                                                        [MUNICIPIO] AS [MUNICIPIO-PPA001_CIDADE],

                                                        [UF] AS [Sheet1$.UF],

                                                        [Valor] AS [Valor],

                                                        GeoMakePoint([LATITUDE], [LONGITUDE]) AS [LONGITUDE_LATITUDE];

                                                      LOAD [ID],

                                                        [LATITUDE],

                                                        [LONGITUDE],

                                                        [Mun/UF],

                                                        [MUNICIPIO],

                                                        [UF],

                                                        [Valor]

                                                      FROM [lib://Qlik/MunicipiosBrasil.xls]

                                                      (biff, embedded labels, table is Sheet1$);

                                                       

                                                      Compilou sem erros e as associações ficaram assim:

                                                      Estrutura de dados.png

                                                      Porém o calendário não associou com as outras tabelas.

                                                      consegue ver algo de errado?

                                                       

                                                      Grato

                                                      Diogo

                                  • Re: Associar Calendário Master com Tabelas em Banco Oracle
                                    Vineeth Pujari

                                    The Name of the date field in your master calendar should be the same as the date field in your fact table.

                                    • Re: Associar Calendário Master com Tabelas em Banco Oracle
                                      Clever Anjos

                                      Poderia dar mais informações?

                                      Anexar um print do modelo ou seu script de dados ajudaria muito

                                       

                                      Como obter ajuda? Leia antes de postar

                                        • Re: Associar Calendário Master com Tabelas em Banco Oracle
                                          Diogo Boff

                                          Boa Tarde

                                           

                                          Estou utilizando o SENSE

                                          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 FirstWeekDay=6;

                                          SET BrokenWeeks=1;

                                          SET ReferenceDay=0;

                                          SET FirstMonthOfYear=1;

                                          SET CollationLocale='pt-BR';

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

                                          SET LongMonthNames='janeiro;fevereiro;março;abril;maio;junho;julho;agosto;setembro;outubro;novembro;dezembro';

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

                                          SET LongDayNames='segunda-feira;terça-feira;quarta-feira;quinta-feira;sexta-feira;sábado;domingo';

                                          //===================================================================================================

                                           

                                           

                                          // Criar calendario

                                           

                                           

                                          LET vMesInicial = Date('01/01/2011');

                                          LET vMesFinal = Date(MonthEnd(Today()));

                                           

                                           

                                          //Criação da tabela Calendário utilizando o comando Autogenerate(), onde a quantidades de linhas é a diferença entre as variáveis criadas anteriormente.

                                           

                                           

                                          CALENDARIO:

                                          LOAD

                                          [Data] as Data,

                                          Day(Data) as Dia,

                                          Month(Data) as Mês,

                                          Year(Data) as Ano,

                                          DayNumberOfQuarter(Data) as [Dia Trimestre],

                                          DayNumberOfYear(Data) as [Dia Ano],

                                          MonthName(Data) as [Mes Ano],

                                          QuarterName(Data) as [Quarter],

                                          Week(Data) as [Semana],

                                          ceil(Month(Data)/3)&'º Trim' as [Trimestre],

                                          WeekDay(Data) as [Dia Semana];

                                          LOAD

                                          Date(MonthEnd(Today())- Recno()+1,'YYYY/MM/DD') as [Data]

                                          AUTOGENERATE(vMesFinal-vMesInicial+1);