Skip to main content
Announcements
Live today at 11 AM ET. Get your questions about Qlik Connect answered, or just listen in. SIGN UP NOW
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.