Fórum SQL de Select e Update complexa #377151
07/05/2010
0
Seguinte... tenho uma tabela de Pedidos e outra tabela de Produto_Pedido... onde são armazenados os itens, quantidades e valores dos produtos se relacionam a um unico pedido realizado por um cliente. O que preciso é Cancelar um pedido, sendo que a quantidade de todos estes itens deverá ser reposta no estoque... ou seja, se cancelo o pedido numero 5, vou até a tabela de Produto_Pedido relaciono todos os itens do pedido 5 e preciso devolver as quantidades a cada item da tabela de PRODUTOS no campo estoque. Pergunto, há alguma forma de fazer tudo isso numa única SQL? Tipo, fazer um Select de todos os itens do Pedido 5 e fazer um Update na tabela de produtos somando Produto.QuantidadeAtual + ItemPedido.Quantidade ??
Tabelas envolvidas:
PEDIDOS PRODUTO_PEDIDO PRODUTOS
+ CODIGO * COD_PEDIDO + CODIGO
* COD_PRODUTO DESCRICAO
QUANTIDADE ESTOQUE
VLR_UNITARIO
Fico no aguardo e desde já, obrigado pelas ajudas
Maikel
Maikel Scheid
Curtir tópico
+ 0Posts
07/05/2010
Maikel Scheid
Tabelas envolvidas:
PEDIDOS
+ CODIGO
PRODUTO_PEDIDO
* COD_PEDIDO
* COD_PRODUTO
QUANTIDADE
VLR_UNITARIO
PRODUTOS
+ CODIGO
DESCRICAO
ESTOQUE
Gostei + 0
07/05/2010
Emerson Nascimento
como você está na sala DELPHI, fica difícil adivinhar qual o banco de dados você está utilizando, e essa é uma informação crucial, visto que os bancos de dados têm características distintas.
de qualquer forma, vou te passar uma instrução que deve funcionar no SQL Server (talvez funcione no FB 2.x):
UPDATE PROD SET
PROD.ESTOQUE = PROD.ESTOQUE + PEDI.QUANTIDADE
FROM
PEDIDOS PED
INNER JOIN
PRODUTO_PEDIDO PEDI ON PEDI.COD_PEDIDO = PED.CODIGO
INNER JOIN
PRODUTOS PROD ON PROD.CODIGO = PEDI.COD_PRODUTO
WHERE
PED.CODIGO = NUMERO_DO_PEDIDO_CANCELADO
ou assim:
UPDATE PROD SET
PROD.ESTOQUE = PROD.ESTOQUE + PEDI.QUANTIDADE
FROM
PRODUTOS PROD
INNER JOIN
PRODUTO_PEDIDO PEDI ON PEDI.COD_PRODUTO = PROD.CODIGO
INNER JOIN
PEDIDOS PED ON PED.CODIGO = PEDI.COD_PEDIDO
WHERE
PED.CODIGO = NUMERO_DO_PEDIDO_CANCELADO
Gostei + 0
07/05/2010
Maikel Scheid
É justamente para SQL Server... no ambiente Delphi for .NET... ainda não testei a SQL, mas pela análise da sua SQL, creio de deve funcionar... logo mais faço a instrução e vou testar nas minhas páginas e volto a postar o resultado.
Obrigado pela ajuda...
Abraço
Gostei + 0
07/05/2010
Maikel Scheid
Problema resolvido... mais uma vez... muito obrigado pela sua ajuda.
Abraço
Maikel
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)