Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Dimensões com datas de campos diferentes

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.

Labels (1)
16 Replies
Not applicable
Author

Alguém?

mario_sergio_ti
Partner - Specialist
Partner - Specialist

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.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
Not applicable
Author

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]);

mario_sergio_ti
Partner - Specialist
Partner - Specialist

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.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo, conseguiu resolver?

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
Not applicable
Author

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?

mario_sergio_ti
Partner - Specialist
Partner - Specialist

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)

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
mario_sergio_ti
Partner - Specialist
Partner - Specialist

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

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
Not applicable
Author

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 ]);