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é!
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
Curtir tópico
+ 0
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é!
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
Clique aqui para fazer login e interagir na Comunidade :)