Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
andrecojel
Contributor

Seleção de datas trazendo comportamentos estranhos

Bom dia, senhores.

Mais uma vez recorro aos senhores...

Estou começando um painel, para fazer uma comparação entre pedidos de compras e pagamentos realizados, por conta financeira (gerencial). O objetivo é saber, baseado num orçamento por conta financeira, se meus pedidos estão dentro do orçamento, para determinada conta financeira, em determinado mês e ano.

O que ocorre é o seguinte, na minha tabela pedidos, tenho o campo de DT_DA_PARCELA_PED, que através de extract no oracle criei      MES_VENC, e  ANO_VENC, estes dois últimos que provavelmente não usaria, ficaram apenas para testes, pois tenho uma tabela CALENDÁRIO, que pega todas as datas dos fatos e reúnem numa única DATA.

O problema é o seguinte, quando seleciono MÊS e ANO, da tabela CALENDÁRIO, obtenho um valor, quando seleciono o MES_VENC, e  ANO_VENC (ambos vindos, na teoria, do mesmo lugar), obtenho quase o dobro do valor....

Não sei porque isso ocorre.

Já comentei todo o código do painel inclusive toda LINK_TABLE, deixei o fato PEDIDOS somente com o CALENDÁRIO,  e o problema persiste.

O problema só se resolve se eu sumir com a tabela CALENDÁRIO, o que não posso, por causa da LINK_TABLE....

Seguem as fotos do painel, com as seleções e valores, também estou anexando o painel principal e o gerador (etl) de qvds...

Por favor, me deem uma luz.

O valor errado R$611.012,

O valor correto R$1.398.737,

Obrigado.

1 Solution

Accepted Solutions
viniciusmariano
New Contributor II

Re: Seleção de datas trazendo comportamentos estranhos

Bom dia Marcos,

O relacionamento entre as tabelas de pedidos e calendário está com problema.

Terá que truncar a DATA e formatar para apresentar da mesma forma.

Verifique a imagem abaixo:

Você terá que converter o valor da Data no pedido e linktable para apresentar de forma correta usando  Date(Floor(DATA)):

Segue sugestão (não foi testado):

// ------------------------

PEDIDOS:
LOAD Distinct
AutoNumber(NUM(Date(Floor(DATA))) & '|' & NULL()                & '|' & %ID_EMPRESA & '|' & %ID_CONTA_GERENCIAL & '|' & %ID_UNIDADE_NEGOCIO)      as %SK_PEDIDOS,
ID_PEDIDO,
CD_PEDIDO,
ID_PARCELA_PEDIDO_ORCAMENTO,
//NULL()      AS ID_CONTA_BANCARIA,
      //%ID_EMPRESA,
      STATUS_PED,
%ID_ALMOXARIFADO,
%ID_FORNECEDOR,
VL_DA_PARCELA_PED,
VL_DA_PARCELA_ORC_PED,
//Date(DATA, 'DD/MM/YYYY') AS DATA,
     DT_DA_PARCELA_PED,
MES_VENC,
ANO_VENC,
If(day(DATA) < 13, 'De 01 a 12',
If(day(DATA) < 18, 'De 13 a 17',
If(day(DATA) < 23, 'De 18 a 22',
If(day(DATA) < 28, 'De 23 a 27', 'De 28 a 30/31')))) as [Vencimentos_pedidos]
//%ID_CONTA_GERENCIAL,
     //%ID_UNIDADE_NEGOCIO
FROM Fonte\Pedidos_orcamento_pagamento\PEDIDOS.qvd (qvd);



// ------------------------

LINK_TABLE:
//PEDIDOS:
LOAD Distinct
AutoNumber(NUM(Date(Floor(DATA))) & '|' & NULL() & '|' & %ID_EMPRESA & '|' & %ID_CONTA_GERENCIAL & '|' & %ID_UNIDADE_NEGOCIO )     as %SK_RATEIO,
AutoNumber(NUM(Date(Floor(DATA))) & '|' & NULL() & '|' & %ID_EMPRESA & '|' & %ID_CONTA_GERENCIAL & '|' & NULL())                   as %SK_TRANSF,
AutoNumber(NUM(Date(Floor(DATA))) & '|' & NULL() & '|' & %ID_EMPRESA & '|' & %ID_CONTA_GERENCIAL & '|' & %ID_UNIDADE_NEGOCIO)      as %SK_PEDIDOS, //<<<<<<<<
      AutoNumber(NUM(Date(Floor(DATA))) & '|' & NULL() & '|' & %ID_EMPRESA & '|' & %ID_CONTA_GERENCIAL & '|' & %ID_UNIDADE_NEGOCIO )     as %SK_ORCAMENTO,
Date(Floor(DATA)) as DATA,
//   NULL() AS  %ID_CONTA_BANCARIA,
      %ID_EMPRESA,
%ID_CONTA_GERENCIAL,
%ID_UNIDADE_NEGOCIO
FROM Fonte\Pedidos_orcamento_pagamento\PEDIDOS.qvd (qvd);

Atenciosamente.

Vinicius Mariano de Lima

2 Replies
viniciusmariano
New Contributor II

Re: Seleção de datas trazendo comportamentos estranhos

Bom dia Marcos,

O relacionamento entre as tabelas de pedidos e calendário está com problema.

Terá que truncar a DATA e formatar para apresentar da mesma forma.

Verifique a imagem abaixo:

Você terá que converter o valor da Data no pedido e linktable para apresentar de forma correta usando  Date(Floor(DATA)):

Segue sugestão (não foi testado):

// ------------------------

PEDIDOS:
LOAD Distinct
AutoNumber(NUM(Date(Floor(DATA))) & '|' & NULL()                & '|' & %ID_EMPRESA & '|' & %ID_CONTA_GERENCIAL & '|' & %ID_UNIDADE_NEGOCIO)      as %SK_PEDIDOS,
ID_PEDIDO,
CD_PEDIDO,
ID_PARCELA_PEDIDO_ORCAMENTO,
//NULL()      AS ID_CONTA_BANCARIA,
      //%ID_EMPRESA,
      STATUS_PED,
%ID_ALMOXARIFADO,
%ID_FORNECEDOR,
VL_DA_PARCELA_PED,
VL_DA_PARCELA_ORC_PED,
//Date(DATA, 'DD/MM/YYYY') AS DATA,
     DT_DA_PARCELA_PED,
MES_VENC,
ANO_VENC,
If(day(DATA) < 13, 'De 01 a 12',
If(day(DATA) < 18, 'De 13 a 17',
If(day(DATA) < 23, 'De 18 a 22',
If(day(DATA) < 28, 'De 23 a 27', 'De 28 a 30/31')))) as [Vencimentos_pedidos]
//%ID_CONTA_GERENCIAL,
     //%ID_UNIDADE_NEGOCIO
FROM Fonte\Pedidos_orcamento_pagamento\PEDIDOS.qvd (qvd);



// ------------------------

LINK_TABLE:
//PEDIDOS:
LOAD Distinct
AutoNumber(NUM(Date(Floor(DATA))) & '|' & NULL() & '|' & %ID_EMPRESA & '|' & %ID_CONTA_GERENCIAL & '|' & %ID_UNIDADE_NEGOCIO )     as %SK_RATEIO,
AutoNumber(NUM(Date(Floor(DATA))) & '|' & NULL() & '|' & %ID_EMPRESA & '|' & %ID_CONTA_GERENCIAL & '|' & NULL())                   as %SK_TRANSF,
AutoNumber(NUM(Date(Floor(DATA))) & '|' & NULL() & '|' & %ID_EMPRESA & '|' & %ID_CONTA_GERENCIAL & '|' & %ID_UNIDADE_NEGOCIO)      as %SK_PEDIDOS, //<<<<<<<<
      AutoNumber(NUM(Date(Floor(DATA))) & '|' & NULL() & '|' & %ID_EMPRESA & '|' & %ID_CONTA_GERENCIAL & '|' & %ID_UNIDADE_NEGOCIO )     as %SK_ORCAMENTO,
Date(Floor(DATA)) as DATA,
//   NULL() AS  %ID_CONTA_BANCARIA,
      %ID_EMPRESA,
%ID_CONTA_GERENCIAL,
%ID_UNIDADE_NEGOCIO
FROM Fonte\Pedidos_orcamento_pagamento\PEDIDOS.qvd (qvd);

Atenciosamente.

Vinicius Mariano de Lima

andrecojel
Contributor

Re: Seleção de datas trazendo comportamentos estranhos

Obrigado pela ajuda Vinicius, o problema era realmente este.

Fica na paz.

Att, Marcos.