Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Dúvida montagem de tabela para pedidos

Pessoal, tenho uma situação que preciso desenvolver no Bi que estou com dúvidas:

Tenho uma tabela chamada TMP_PEDIDO, que armazena diariamente a posição da carteira de pedidos daquele dia.
Nesta tabela tenho 2 datas : data da carteira ( que é a data diaria da geração da tabela temporária),
a data de emissão (que é a data da emissão do pedido) e a data de entrega (que é a data de entrega do pedido).


o que preciso fazer:

--> 2 tabelas, que me mostrem por familia de produto, dia a dia a carteira de pedidos em tonelagem.
--> na primeira tabela tenho que mostrar a carteira de pedido que foi formada para março ( data de entrega),
com pedidos emitidos até o último dia de fevereiro.

--  na segunda tabela tenho que mostrar a carteira de pedido que foi formada para março(data de entrega), com
pedidos emitidos dentro do mês de março.

Como eu posso fazer isto pessoal alguma dica?

tentei fazer algo já, mas que dia que eu colocaria na tabela, para mostrar os pedidos diariamente?
Eu coloquei a data da carteira, mas daí quando monto a carteira do mes anterior, não traz todos os dias,
sõ traz os dias presentes em março.

Alguém pode me dar alguma dica?

Desde já agradeço a ajuda.


Segue anexo um print da tela que estou fazendo.

Abraços,

Juliana

1 Solution

Accepted Solutions
aderlanrm
Partner - Specialist
Partner - Specialist

Olá Juliana,

Sua ideia pode funcionar!

O código abaixo recria a tabela de pedidos com datas de outras tabelas, seja ela o calendário ou não, quando faz o left join, ele colocará nulo nas datas que não tem na tabela de pedidos, com isso, em um residente você pode fazer um IF nesse campo, porém os outros campos também estão com nulo, talvez seja interessante tratalos também.

Espero que seja útil. Abraço.

TB1:

NoConcatenate

LOAD DATA_CALENDARIO

Resident Calendario;

Left Join (TB1)

LOAD DATA_HISTORICO as DATA_CALENDARIO,

    PEDIDO,

    VALOR,

    PESO

Resident Pedidos;

DROP Table Pedidos;

Pedidos:

NoConcatenate

LOAD DATA_CALENDARIO as DATA_HISTORICO,

    PEDIDO,

    If(IsNull(VALOR),0,VALOR) as VALOR,

    PESO

Resident TB1;

DROP Table TB1;

Aderlan Rodrigues
Analista, Arquiteto de Dados e Piloto Amador Drone FPV
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)

View solution in original post

10 Replies
Not applicable
Author

Pessoal, complementando minha dúvida:


Tenho duas tabelas conforme print.

Na primeira tabela preciso que o campo dia considere os dias do mes anterior ao selecionado no filtro

e na segunda tabela que o campo dia considere os dias do mes atual.

E por fórmula pretendo tratar os valores, conforme expliquei acima.

alguma dica pessoal? Estou precisando muito da ajuda de vcs..


Grata,
Juliana

aderlanrm
Partner - Specialist
Partner - Specialist

Olá Juliana,

Você já tenteu com SetAnalysis?

Tabela 1:

Sum({< Ano, Mês = 2 >} Valor)

Tabela 2:

Sum({< Ano, Mês = 3 >} Valor)

Sendo que MÊS se refere a data de entrega, pois são nelas que você determina a "formação" das tabelas, certo?

Acho que não entendi bem, porém, se queser anexar o qvw, somente com essa aba claro, e um print de qual o resultado que pretende, podemos dar uma olhada!!!

Abraço.

Aderlan Rodrigues
Analista, Arquiteto de Dados e Piloto Amador Drone FPV
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)
Not applicable
Author

Olá Aderlan, bom dia! Obrigada por responder viu? Estou tentando utilizar o set analysis, mas daí estou tendo alguns probleminhas.

Em anexo o print da tela e o qvw.

Olha só, se vc ver a primeiro cadastro (pedidos para março formados em fevereiro), quero fazer o seguinte:

Mostrar a carteira de pedidos dia a dia em fevereiro (que está gravada na tabela histórico de pedido por dia), onde a data de entrega seja março.

Se você ver o print da maneira que fiz, ele só está mostrando os dias conforme o mês de março, que é a segunda tabela na tela.

Nesta segunda tabela, eu quero que mostre dia a dia em março os pedidos, que a data de entrega seja em março e a emissão dos pedidos seja em março também.


Desde já agradeço sua ajuda!

Abraço,

Juliana.

Not applicable
Author

Aderlan,
Estive pensando, será que não consigo fazer algum tratamento pelo script?
Por exemplo utilizo a data de calendario como padrão, que daí já tenho todas as datas carregadas e mostro sempre os dias do mes completo, se já tiver determinado dia na tabela de historico de pedidos (armazena dia a dia), mostra o valor, senão mostra 0 para aquele dia.

Ms como eu poderia fazer este tratamento?

Exemplo:


TAB_CALENDARIO:

DATA_CALENDARIO

HISTORICO_PEDIDO:

DATA_HISTORICO
PEDIDO,

VALOR,

PESO.

Como eu concatenaria estas duas tabelas e poderia jogar 0 para os valores que ainda não existem no mes corrente?

Desde já agradeço a ajuda,
Abs,

Juliana.

aderlanrm
Partner - Specialist
Partner - Specialist

Olá Juliana,

Sua ideia pode funcionar!

O código abaixo recria a tabela de pedidos com datas de outras tabelas, seja ela o calendário ou não, quando faz o left join, ele colocará nulo nas datas que não tem na tabela de pedidos, com isso, em um residente você pode fazer um IF nesse campo, porém os outros campos também estão com nulo, talvez seja interessante tratalos também.

Espero que seja útil. Abraço.

TB1:

NoConcatenate

LOAD DATA_CALENDARIO

Resident Calendario;

Left Join (TB1)

LOAD DATA_HISTORICO as DATA_CALENDARIO,

    PEDIDO,

    VALOR,

    PESO

Resident Pedidos;

DROP Table Pedidos;

Pedidos:

NoConcatenate

LOAD DATA_CALENDARIO as DATA_HISTORICO,

    PEDIDO,

    If(IsNull(VALOR),0,VALOR) as VALOR,

    PESO

Resident TB1;

DROP Table TB1;

Aderlan Rodrigues
Analista, Arquiteto de Dados e Piloto Amador Drone FPV
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)
Not applicable
Author

.

Olá Aderlan, bom dia!

Estou tentando fazer o script como conversamos acima, mas tem alguma coisa errada.  Veja meu print, na tabela acima é a tabela que vai até  a estrutura do TB1 do seu script e daí aparece os dias até 31 de março por exemplo.

Porém quando vou montar a tabela PEDIDOS, ele me mostra somente até o dia 25, o que será que estou errando.
Veja meu script em anexo.

Desde já te agradeço,

Abs,
Juliana

Not applicable
Author

Aderlan, acho que descobri o problema, porém não tive uma idéia de como posso tratar isto.
No minha tabela (que demonstra) os pedidos por dia, tenho uma dimensão familia de produto.
Porém se eu selecionar determinada familia, para os dias 26 até dia 31 de março, a família estará nula e daí não mostra o dia no gráfico (tabela).

pode ser isso né? Mas daí como tratar? Alguma idéia?

Veja meus prints

Desde já agradeço,

Juliana.

Not applicable
Author

Aderlan, na verdade eu precisaria ter uma opção de para a primeira tabela do meu print, para a DIMENSAO DIA, buscar os dias do mês anterior e não os dias do mês selecionado.

Tem como fazer isto?

Desde já agradeço.

Abs,
Juliana

aderlanrm
Partner - Specialist
Partner - Specialist

Olá Juliana,

Tente colocar -1 usando MontStart da data que você usa para criar os pedidos do mês anterior, com isso, ficaria algo assim: MonthStart(Data)-1, ou seja, mes anterior.

Não sei se é exatamente isso que você quis dizer, mas na hora de recriar a tabela, da mesma forma que você usou o IF para tratar se o valor é nulo, você pode fazer outros tratamentos e calculos, inclusive de tempo.

Abraço.

Aderlan Rodrigues
Analista, Arquiteto de Dados e Piloto Amador Drone FPV
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)