Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
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.

Tags (2)
16 Replies
Not applicable

Re: Dimensões com datas de campos diferentes

Alguém?

mario_sergio_ti
Valued Contributor

Re: Dimensões com datas de campos diferentes

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.

Not applicable

Re: Dimensões com datas de campos diferentes

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
Valued Contributor

Re: Dimensões com datas de campos diferentes

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.

mario_sergio_ti
Valued Contributor

Re: Dimensões com datas de campos diferentes

Amigo, conseguiu resolver?

Not applicable

Re: Dimensões com datas de campos diferentes

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
Valued Contributor

Re: Dimensões com datas de campos diferentes

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)

mario_sergio_ti
Valued Contributor

Re: Dimensões com datas de campos diferentes

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

Not applicable

Re: Dimensões com datas de campos diferentes

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