16 Replies Latest reply: May 15, 2017 11:07 AM by MARIO SOARES RSS

    Dimensões com datas de campos diferentes

    Thiago Ramos

      Bom dia Srs,

       

      Estou tendo uma certa dificuldade em gerar um gráfico onde nele teria que possuir 3 colunas, 1 da quantidade em peso da matéria prima que chegou, a outra a quantidade que foi pedida e a terceira com a quantidade de saída.

       

      Até o momento, consegui colocar normalmente a da chegada e a pedida, mas a de saída estou tendo dificuldades, pois usei como dimensão do gráfico MonthNames([DatadeRecebimento]). A DatadeRecebimento é um campo na tabela. Então foi só fazer Sum(Peso).

       

      Meu problema é que a quantidade de saída é verificada na mesma tabela, mas levando em consideração outro campo de data chamado DatadeBritagem.

       

      E como usei a DatadeRecebimento como dimensão, não sei como faço para agrupar nessa mesma dimensão o Peso, mas agrupar por esta segunda data.

       

      Ex

      ProdutoLoteDatadeEntradaPesoDatadeBritagem
      Produto10003325/12/20162500002/01/2017
      Produto20004726/12/20161400002/01/2017

       

       

      Neste caso, a coluna de recebimento no gráfico sairia com 39000 em dezembro, mas a coluna com a saída deveria sair em janeiro.

       

      Se alguém puder me ajudar, agradeço.

        • Re: Dimensões com datas de campos diferentes
          MARIO SOARES

          Vejo como alternativa, ajustar no script para resolver a questão das datas;

           

          Tabela1:
          LOAD
               ID,
               Produto,
               Lote,
               DatadeEntrada as 'Data Movimento',
               Peso,
               DatadeBritagem,
               'Entrada' as 'Tipo Movimento'
          FROM [lib://REPOSITORIO/Tabela1.QVD] (qvd);
          
          Concatenate(Tabela1); //Mesmo ausentando, o sistema irá entender implicitamente pois as duas tabelas são iguais, recomendo ressaltar para futuras manutenções
          
          Tabela2:
          LOAD
               ID,
               Produto,
               Lote,
               DatadeSaida as 'Data Movimento',
               Peso,
               DatadeBritagem,
               'Saída' as 'Tipo Movimento'
          FROM [lib://REPOSITORIO/Tabela2.QVD] (qvd);
          
          
          

           

          Obs.; Foi utilizado o padrão de pastas do Qlik Sense, mas se for Qlikview, poderá substituir para o padrão absoluto de endereçamento de pasta.

            • Re: Dimensões com datas de campos diferentes
              Thiago Ramos

              Bom dia Mario.

               

              Não sei se daria certo pois estou usando left join em duas tabelas já:

               

              [Tabela_Registro Geral de Pedra ]:

              LOAD [Organização (Apelido)] &'-'& [Matéria Prima] &'-'& [Fornecedor] &'-'& year(date([Data de Recebimento],'DD/MM/YYYY')) &'.'& num(Month(date([Data de Recebimento],'DD/MM/YYYY')),'00') as PK_QUOTA,

                [Organização (Apelido)],

                [Matéria Prima],

                [Fornecedor],

                [Frente],

                [Viagem nº],

                [Data de Recebimento],

                  num(Month(date([Data de Recebimento],'DD/MM/YYYY')),'00') as DimensaoMes,

                  num(year(date([Data de Recebimento],'DD/MM/YYYY'))) as DimensaoAno,

                [CaCO3],

                [MgCO3],

                [SiO2],

                [R2O3],

                [Peso],

                [Situação],

                [INC],

                [Status],

                [Data de Britagem],

                [Fe2O3 (%)],

                [Al2O3 (%)],

                [MnO (%)],

                [Na2O (%)],

                [K2O (%)],

                [P2O5 (%)],

                [TiO2 (%)],

                [SrO (%)],

                [Fechamento Químico (%)]

              FROM [REPOSITORIO/Tabela_Registro Geral de Pedra Marroada.xlsx]

              (ooxml, embedded labels, table is [Tabela_Registro Geral de Pedra ]);

               

               

              Left Join

               

               

              [Tabela_de Controle de Quota1]:

              LOAD [Organização (Apelido)] &'-'& [Matéria Prima] &'-'& [Fornecedor] &'-'& [Ano] &'.'& num([Mês], '00') as PK_QUOTA,

                [Ano],

                [Mês],

                [Quota Mensal]

              FROM [REPOSITORIO/Tabela_de Controle de Quota1.xlsx]

              (ooxml, embedded labels, table is [Tabela_de Controle de Quota1]);

                • Re: Dimensões com datas de campos diferentes
                  MARIO SOARES

                  Neste caso, quando é executado um Left Join, a tabela [Tabela_de Controle de Quota1] desaparece no modelo de dados e assumirá tudo em [Tabela_Registro Geral de Pedra ], tornando em uma só tabela. Então poderá usar a lógica que mencionei.

                   

                  Exemplo:

                   

                  Tabela1:  
                  LOAD  
                       ID,  
                       Produto,  
                       Lote,  
                       DatadeEntrada as 'Data Movimento',  
                       Peso,  
                       DatadeBritagem
                  FROM [lib://REPOSITORIO/Tabela1.QVD] (qvd);  
                  
                  Left Join
                  
                  Tabela3: //desaparecerá, pois juntou com Tabela1.ID <= Tabela3.ID para a tabela Tabela1
                       ID, 
                       'Entrada' as 'Tipo Movimento'  
                  FROM [lib://REPOSITORIO/Tabela1.QVD] (qvd);  
                    
                  Concatenate(Tabela1); //Mesmo ausentando, o sistema irá entender implicitamente pois as duas tabelas são iguais, recomendo ressaltar para futuras manutenções  
                    
                  Tabela2:  
                  LOAD  
                       ID,  
                       Produto,  
                       Lote,  
                       DatadeSaida as 'Data Movimento',  
                       Peso,  
                       DatadeBritagem,  
                       'Saída' as 'Tipo Movimento'  
                  FROM [lib://REPOSITORIO/Tabela2.QVD] (qvd);  
                  

                   

                  Tabela3 assumirá neste exemplo Tabela1, pois ouve uma junção antes.

                    • Re: Dimensões com datas de campos diferentes
                      MARIO SOARES

                      Amigo, conseguiu resolver?

                        • Re: Dimensões com datas de campos diferentes
                          Thiago Ramos

                          Bom dia,

                           

                          Não, deu erro desconhecido no Concatenate, talvez eu tenha colocado algum campo errado.

                           

                          No exemplo que me deu, na Tabela1 há os campos DatadeEntrada e DatadeBritagem que são os campos que coloquei na tabela de exemplo.

                           

                          Já na Tabela2 tem o campo DatadeSaida, mas esse campo não existe na minha tabela de exemplo, esta correto isso?

                            • Re: Dimensões com datas de campos diferentes
                              MARIO SOARES

                              Amigo, veja se atende, adaptei no seu modelo:

                               

                              [Tabela_Registro_Geral_de_Pedra]:
                              LOAD [Organização (Apelido)] &'-'& [Matéria Prima] &'-'& [Fornecedor] &'-'& year(date([Data de Recebimento],'DD/MM/YYYY')) &'.'& num(Month(date([Data de Recebimento],'DD/MM/YYYY')),'00') as PK_QUOTA,
                                [Organização (Apelido)],
                                [Matéria Prima],
                                [Fornecedor],
                                [Frente],
                                [Viagem nº],
                                [Data de Recebimento] as DataMovimento,
                                  num(Month(date([Data de Recebimento],'DD/MM/YYYY')),'00') as DimensaoMes,
                                  num(year(date([Data de Recebimento],'DD/MM/YYYY'))) as DimensaoAno,
                                [CaCO3],
                                [MgCO3],
                                [SiO2],
                                [R2O3],
                                [Peso],
                                [Situação],
                                [INC],
                                [Status],
                                [Fe2O3 (%)],
                                [Al2O3 (%)],
                                [MnO (%)],
                                [Na2O (%)],
                                [K2O (%)],
                                [P2O5 (%)],
                                [TiO2 (%)],
                                [SrO (%)],
                                [Fechamento Químico (%)],
                                'DataRecebimento' as Tipo Movimento
                              FROM [REPOSITORIO/Tabela_Registro Geral de Pedra Marroada.xlsx]
                              (ooxml, embedded labels, table is [Tabela_Registro Geral de Pedra ]);
                              
                              Concatenate(Tabela_Registro_Geral_de_Pedra);
                              
                              [Tabela_Registro_Geral_de_Pedra_DtBritagem]:
                              LOAD [Organização (Apelido)] &'-'& [Matéria Prima] &'-'& [Fornecedor] &'-'& year(date([Data de Recebimento],'DD/MM/YYYY')) &'.'& num(Month(date([Data de Recebimento],'DD/MM/YYYY')),'00') as PK_QUOTA,
                                [Organização (Apelido)],
                                [Matéria Prima],
                                [Fornecedor],
                                [Frente],
                                [Viagem nº],
                                [Data de Britagem] as DataMovimento,
                                  num(Month(date([Data de Britagem],'DD/MM/YYYY')),'00') as DimensaoMes,
                                  num(year(date([Data de Britagem],'DD/MM/YYYY'))) as DimensaoAno,
                                [CaCO3],
                                [MgCO3],
                                [SiO2],
                                [R2O3],
                                [Peso],
                                [Situação],
                                [INC],
                                [Status],
                                [Fe2O3 (%)],
                                [Al2O3 (%)],
                                [MnO (%)],
                                [Na2O (%)],
                                [K2O (%)],
                                [P2O5 (%)],
                                [TiO2 (%)],
                                [SrO (%)],
                                [Fechamento Químico (%)],
                                'DataBritagem' as Tipo Movimento
                              FROM [REPOSITORIO/Tabela_Registro Geral de Pedra Marroada.xlsx]
                              (ooxml, embedded labels, table is [Tabela_Registro Geral de Pedra ]);
                              
                              [Tabela_de Controle de Quota1]:
                              LOAD [Organização (Apelido)] &'-'& [Matéria Prima] &'-'& [Fornecedor] &'-'& [Ano] &'.'& num([Mês], '00') as PK_QUOTA,
                                [Ano],
                                [Mês],
                                [Quota Mensal]
                              FROM [REPOSITORIO/Tabela_de Controle de Quota1.xlsx]
                              (ooxml, embedded labels, table is [Tabela_de Controle de Quota1]);
                              

                               

                               

                              Neste modelo, o campo [Data de Recebimento] é a principal, onde relacionará com a data de Britagem, por conta de como montou as chaves, caso queira o inverso, só alterar os campos [Data de Recebimento] para [Data de Recebimento] nas chaves PK_QUOTA;

                               

                               

                              Com Set Analysis, poderá colocar algo tipo Sum({<[Tipo Movimento]={'DataBritagem'}>}Peso)

                                • Re: Dimensões com datas de campos diferentes
                                  MARIO SOARES

                                  Perceba que aumentará sua massa de dados, mas parece que este não será seu problema, já que você está utilizando como fonte de dados um arquivo xlsx;

                                  Caso fosse banco de dados com grande volume, recomendaria uma outra estratégica para minimizar os volumes, removendo campos que não agregam valores e utilizando outro modelo.

                                   

                                  Abraço

                                    • Re: Dimensões com datas de campos diferentes
                                      Thiago Ramos

                                      Mario,

                                       

                                      Mas na realidade, a de britagem eu precisaria somente da data, peso e do tipo de movimento.

                                       

                                      Acha que precisa ser feita a ligação com a tabela de quota?

                                       

                                      Fiz dessa forma, mas está dando erro no Concatenate:

                                       

                                       

                                      [Tabela_Pedra]:

                                      LOAD [Matéria Prima] &'-'& [Fornecedor] &'-'& year(date([Data de Recebimento],'DD/MM/YYYY')) &'.'& num(Month(date([Data de Recebimento],'DD/MM/YYYY')),'00') as PK_QUOTA,

                                          [Organização (Apelido)],

                                          [Matéria Prima],

                                          [Fornecedor],

                                          [Frente],

                                          [Viagem nº],

                                          [Data de Recebimento] as DataMovimento,

                                          num(Month(date([Data de Recebimento],'DD/MM/YYYY')),'00') as DimensaoMes,

                                          num(year(date([Data de Recebimento],'DD/MM/YYYY'))) as DimensaoAno,

                                          [CaCO3],

                                          [MgCO3],

                                          [SiO2],

                                          [R2O3],

                                          [Peso],

                                          [Situação],

                                          [INC],

                                          [Status],

                                          [Fe2O3 (%)],

                                          [Al2O3 (%)],

                                          [MnO (%)],

                                          [Na2O (%)],

                                          [K2O (%)],

                                          [P2O5 (%)],

                                          [TiO2 (%)],

                                          [SrO (%)],

                                          [Fechamento Químico (%)],

                                          'DataRecebimento' as TipoMovimento

                                      FROM [lib://qlikid_thiagolr/Tabela_Registro Geral de Pedra Marroada.xlsx]

                                      (ooxml, embedded labels, table is [Tabela_Registro Geral de Pedra ]);

                                       

                                      Left Join

                                       

                                      [Tabela_Quota1]:

                                      LOAD [Matéria Prima] &'-'& [Fornecedor] &'-'& [Ano] &'.'& num([Mês], '00') as PK_QUOTA,

                                          [Ano],

                                          [Mês],

                                          [Quota Mensal]

                                      FROM [lib://qlikid_thiagolr/Tabela_de Controle de Quota1.xlsx]

                                      (ooxml, embedded labels, table is [Tabela_de Controle de Quota1]);

                                       

                                      Concatenate(Tabela_Pedra);

                                       

                                       

                                      [Tabela_Britagem]:

                                      LOAD [Matéria Prima] &'-'& [Fornecedor] &'-'& year(date([Data de Recebimento],'DD/MM/YYYY')) &'.'& num(Month(date([Data de Recebimento],'DD/MM/YYYY')),'00') as PK_QUOTA,

                                          [Organização (Apelido)],

                                          [Matéria Prima],

                                          [Fornecedor],

                                          [Frente],

                                          [Viagem nº],

                                          [Data de Britagem] as DataMovimento,

                                          num(Month(date([Data de Recebimento],'DD/MM/YYYY')),'00') as DimensaoMes,

                                          num(year(date([Data de Recebimento],'DD/MM/YYYY'))) as DimensaoAno,

                                          [CaCO3],

                                          [MgCO3],

                                          [SiO2],

                                          [R2O3],

                                          [Peso],

                                          [Situação],

                                          [INC],

                                          [Status],

                                          'DataBritagem' as TipoMovimento

                                      FROM [lib://qlikid_thiagolr/Tabela_Registro Geral de Pedra Marroada.xlsx]

                                      (ooxml, embedded labels, table is [Tabela_Registro Geral de Pedra ]);

                        • Re: Dimensões com datas de campos diferentes
                          MARIO SOARES

                          Amigo;

                          Se possível e for o caso, marque as respostas apropriadas como Útil e/ou Correta para que outros membros possam saber que a sua pergunta foi respondida.

                          Abraço.