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

Comparação de datas em formatos diferentes

Boa tarde Srs.

Estou com uma dificuldade pois preciso montar visões com 2 tabelas onde em cada uma há campos de datas em formatos diferentes.

A tabela 1 guarda dados de entrada de mercadoria:

EmpresaProdutoFornecedorData de RecebimentoPeso
MatrizProduto1Fornecedor114/12/201615000
MatrizProduto1Fornecedor215/12/201612000

E uma segunda tabela onde é registrado a cota que foi passada para cada fornecedor no mês:

EmpresaProdutoFornecedorAnoMêsQuota Mensal
MatrizProduto1Fornecedor120151240000
MatrizProduto1Fornecedor120161235000
MatrizProduto1Fornecedor220161220000
MatrizProduto2Fornecedor220161150000

Preciso colocar no gráfico(de barras e linhas por exemplo) a comparação mês a mês de 1 fornecedor mostrando a soma que ele me enviou e do lado a quota daquele mesmo mês, juntamente com a porcentagem do que ele entregou sendo mostrado na linha.

A parte gráfica não terei dificuldades, meu problema é comparar as duas datas da forma que estão, a associação é feita pelos 3 primeiros campos, mas com ano e mês separados está dificultando.

1 Solution

Accepted Solutions
maiconmello
Creator III
Creator III

Boa tarde,

Faria assim :

LOAD Empresa &'-'& Produto &'-'& Fornecedor &'-'& Ano &'.'& Mês as PK_MERCADORIA,

    Ano,

    Mês,

    [Quota Mensal]

FROM

(ooxml, embedded labels, table is [Cota Mes]);

left join

LOAD Empresa &'-'& Produto &'-'& Fornecedor &'-'& year(date([Data de Recebimento],'DD/MM/YYYY')) &'.'& num(Month(date([Data de Recebimento],'DD/MM/YYYY')),'00') as PK_MERCADORIA,

    Empresa,

    Produto,

    Fornecedor,

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

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

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

    num(Peso,'#######.###') as Peso

FROM

(ooxml, embedded labels, table is [Entrada Mercadoria]);

Segue o QVW.

View solution in original post

7 Replies
maiconmello
Creator III
Creator III

Boa tarde,

Faria assim :

LOAD Empresa &'-'& Produto &'-'& Fornecedor &'-'& Ano &'.'& Mês as PK_MERCADORIA,

    Ano,

    Mês,

    [Quota Mensal]

FROM

(ooxml, embedded labels, table is [Cota Mes]);

left join

LOAD Empresa &'-'& Produto &'-'& Fornecedor &'-'& year(date([Data de Recebimento],'DD/MM/YYYY')) &'.'& num(Month(date([Data de Recebimento],'DD/MM/YYYY')),'00') as PK_MERCADORIA,

    Empresa,

    Produto,

    Fornecedor,

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

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

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

    num(Peso,'#######.###') as Peso

FROM

(ooxml, embedded labels, table is [Entrada Mercadoria]);

Segue o QVW.

Not applicable
Author

Bom dia Maicon,

Funcionou parcialmente dessa forma que me passou.

Não entendi o motivo, mas por exemplo, de 2016 não preencheu com os valores das quotas, e há esses valores na tabela original. Alguns de 2015 também não.

Essa expressão year(date([Data de Recebimento],'DD/MM/YYYY') pega o ano da minha data de recebimento no caso, e esta num(Month(date([Data de Recebimento],'DD/MM/YYYY')),'00') o mês? Ou entendi errado?

maiconmello
Creator III
Creator III

Ola @Thiago Ramos isso mesmo, expressão pego ano e mês , pelo motivo  que na cota você tem somente o ano e mês.

Ele mostra sim, cria no segundo bloco esse campo.

Ano&'-'& Mês  as Periodo,  ai joga na dimensão e retira o mês.

O que acontece, como a dimensão esta mês, ou seja dezembro de 2015 e dezembro 2016, ele agrupa.

Agora se criar o campo periodo, com ano e mês, ele separa.

Veja na imagem. Capturar.PNG

Not applicable
Author

Acho que consegui descobrir o motivo Maicon,

O problema é que na tabela de exemplo que te passei, só coloquei meses 11 e 12.

O problema que está acontecendo aqui é porque na tabela1 que tem a data o formato está DD/MM/YYYY

Mas na segunda tabela, os primeiros meses, até setembro estão como 1, 2, 3, etc. Não tenho certeza se é isso, mas se estivesse como 01, 02, 03... Talvez funcionaria.

Já que os meses 10,11 e 12 estão aparecendo.

maiconmello
Creator III
Creator III

Ahhh entendi , você fez com uma massa de dados maior.

Então aonde tem o campo mês faça assim :

num(Month(date([Data de Recebimento],'DD/MM/YYYY')),'00') , formato ele em duas casas e terá o comportamento certo. O que tiver como 1,2,3 passara a ter 01,02,03 ...

Espero ter ajudado.

maiconmello
Creator III
Creator III

Ou num(mes,'00') as Mes

Not applicable
Author

Fiz dessa segunda forma, obrigado.