GARANTIR DESCONTO

Fórum SQL para comparação dados #271587

09/03/2005

0

E aí pessoal, blz?

Tô com um pequeno problema para conseguir acertar uma SQL. Tenho em uma determinada tabela os seguintes dados:

===========================
FORNECEDOR | PRODUTO | QUANTIDADE
===========================
FULANO | X | 1
FULANO | Y | 1
FULANO | Z | 1
===========================

O Usuário pode imprimir esse relatório várias vezes durante o dia, só que o problema é que na segunda vez o programa só deveria mostrar o que foi acrescentado/removido em relação a última impressão. Então fiz uma Stored Procedure que verifica os dados atuais e subtrai o que foi impresso na última vez (para isso, toda vez que o usuário imprime o relatório eu gravo numa outra tabela o que foi impresso). O problema é que essa stored não está atendendo uma condição. Imaginem que os dados acima representam a primeira impressão do usuário. Agora imaginem que algum tempo depois a tabela está com os seguintes dados:

===========================
FORNECEDOR | PRODUTO | QUANTIDADE
===========================
FULANO | X | 1
FULANO | Z | 1
===========================

Lembrando que eu tenho uma cópia daquela primeira tabela no banco de dados... Bem, então nesse caso o relatório deveria ser:

===========================
FORNECEDOR | PRODUTO | QUANTIDADE
===========================
FULANO | X | 0
FULANO | Y | -1
FULANO | Z | 0
===========================

Reparem que o produto Y não existe mais na segunda vez que o usuário foi imprimir o relatório, logo, ele não está mais sendo solicitado e com isso no relatório eu devo informar que ele não é mais necessário informado a quantidade que deve ser retirada. Os produtos X e Z ficaram com quantidade 0 porque na segunda impressão continuaram sendo solicitados somente 1 e esse 1 já tinha sido impresso na primeira vez. Complicado? Bem, eu sei que teria que fazer algum tipo de join entre as duas tabelas, mas não to conseguindo fazer.

Se alguém puder me dar uma luz... valeu ae!!!

até!


Delphi32

Delphi32

Responder

Posts

09/03/2005

Delphi32

Tava na minha cara o tempo todo e eu não vi...

Usei um FULL JOIN entre a tabela da primeira impressão com a tabela com os dados atuais.

Fácil, fácil, mas eu não tava enxergando... :wink:

Até!


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar