Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
junior_ehlke
Contributor III

Condição entre duas tabelas - (WHERE Exists?)

Pessoal, tenho um histórico de produtos faltantes na loja e um outra tabela com pedidos de compra feitos.

Esta tabela carrega em um QVD apenas produtos faltantes diariamente:

data       - prod         - unidade

18/02/16 - produto X - 001

19/02/16 - produto X - 001

21/02/16 - produto X - 001

22/02/16 - produto X - 001


Na tabela de compra, ela me mostra todos os dias que o produto foi comprado:

data       - prod         - unidade

20/02/16 - produto X - 001


percebam que esse produto não aparece no dia 20 na tabela 1, pois neste dia, ele teve uma compra.


eu preciso listar apenas UMA vez este produto, ou seja, mostrar a data MÍNIMA a partir da sua ultima compra:

data       -  prod

21/02/16 - produto X


porém se eu escolho min(data) ele sempre me traz o dia 18, não sei como comparar com a data da tabela de compra

Tags (1)
1 Solution

Accepted Solutions
fabionakashigue
Contributor

Re: Condição entre duas tabelas - (WHERE Exists?)

!Hamilton,

Segue o qvw de exemplo, não sei se é realmente o melhor metodo a ser implementado. Observe que criei minha tabela apenas com a minima data e dropei todas as outras.

Acredito que será necessário para seu caso juntar/criar chave com a minha Tabela1

Abs.

8 Replies
junior_ehlke
Contributor III

Re: Condição entre duas tabelas - (WHERE Exists?)

Ninguém com nenhuma ideia?

maiconmello
Contributor III

Re: Condição entre duas tabelas - (WHERE Exists?)

Hamilton, Veja se isso atende você :

Em anexo o modelo:

Comprastemp:

LOAD * INLINE [

    Produto, DtCompra

    1, 01/02/2016

    1, 10/02/2016

    1, 12/02/2016

    1, 20/02/2016

];

left join (Comprastemp)

load Produto, max(Previous(DtCompra)) as penultimacompra Resident Comprastemp group by Produto order by Produto,DtCompra ; //group by Produto;

junior_ehlke
Contributor III

Re: Condição entre duas tabelas - (WHERE Exists?)

Quase isso Maicon,

não é necessariamente a penúltima data de movimento, mas sim, a menor data a partir de um intervalo.

Na tabela esta assim

data       - prod         - unidade

18/02/16 - produto X - 001

19/02/16 - produto X - 001

INTERVALO NO DIA 20

21/02/16 - produto X - 001

22/02/16 - produto X - 001

23/02/16 - produto X - 001

24/02/16 - produto X - 001


Eu preciso que me retorne o dia 21 pois no dia 20 por exemplo, ele não traz na tabela pois foi realizado uma compra.

fabionakashigue
Contributor

Re: Condição entre duas tabelas - (WHERE Exists?)

Hamilton,

Você precisa sempre da próxima data após a compra do produto certo? Mas e quando temos mais de uma compra para o produto?

Abs

Fabio Nakashigue

junior_ehlke
Contributor III

Re: Condição entre duas tabelas - (WHERE Exists?)

Sempre a data mínima, exemplo:

data       - prod         - unidade

18/02/16 - produto X - 001

19/02/16 - produto X - 001

INTERVALO NO DIA 20

21/02/16 - produto X - 001

22/02/16 - produto X - 001

INTERVALO NO DIA 23

INTERVALO NO DIA 24

25/02/16 - produto X - 001

26/02/16 - produto X - 001


A linha que deve permanecer é apenas a

25/02/16 - produto X - 001

junior_ehlke
Contributor III

Re: Condição entre duas tabelas - (WHERE Exists?)

A data que define o intervalo, eu tenho em outra tabela,

data       - prod         - unidade

20/02/16 - produto X - 001

23/02/16 - produto X - 001

24/02/16 - produto X - 001


Mas não consigo filtrar as duas, o correto seria mais ou menos assim

a menor data dos produtos (tabela 1) apos a maior data da compra (tabela 2).

fabionakashigue
Contributor

Re: Condição entre duas tabelas - (WHERE Exists?)

!Hamilton,

Segue o qvw de exemplo, não sei se é realmente o melhor metodo a ser implementado. Observe que criei minha tabela apenas com a minima data e dropei todas as outras.

Acredito que será necessário para seu caso juntar/criar chave com a minha Tabela1

Abs.

junior_ehlke
Contributor III

Re: Condição entre duas tabelas - (WHERE Exists?)

Fábio, no seu exemplo eu apenas agrupei por unidade e produto na PegaMaxDataCompra,

adicionei mais uma loja e alterei as datas, funcionou perfeitamente.

Vou tentar usar sua lógica para o meu códio.

Logo dou o retorno.

Obrigado.