 |
ActiveDelphi .: O site do programador Delphi! :.
|
| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
RODRIGOSOUZArios Novato

Registrado: Sábado, 16 de Julho de 2005 Mensagens: 84 Localização: varginha
|
Enviada: Sex Jan 11, 2008 12:54 pm Assunto: Update em SQL |
|
|
Pessoal, é o seguinte, como posso fazer um UPDATE em uma tabela que possui relacionamento com outra?
É o seguinte, possuo uma tabela chamada PRODUTOS, com um campo chamado <LINHA>, possuo uma outra tagela chamada GRADE, com campo <quantidade>...
Eu preciso zerar a quantidade de todos os produtos da grade cuja linha é 2 da tabela PRODUTOS...
Ja tentei de varias formas e nao obtive êxito...
Vai um algoritmo abaixo, à grosso modo...
UPDATE PRODUTOSGRADE SET QUANTIDADE= :QTDE WHERE PRODUTOS.CODIGO_LINHA = 2
Abraços |
|
| Voltar ao Topo |
|
 |
Ghost_Rider Colaborador

Registrado: Segunda-Feira, 6 de Outubro de 2003 Mensagens: 4437
|
Enviada: Sex Jan 11, 2008 2:36 pm Assunto: |
|
|
OK, vamos com calma. Uma tabela esta relacionada com outra quando a chave primária de uma é chave estrangeira na outra. Por exemplo, imaginemos a tabela COMPRA e a tabela ITENSCOMPRA.
Na tabela COMPRA temos a chave primária, por exemplo COMPRAS_CODIGO e na tabela de ITENSCOMPRA temos vários campos, mas entre eles temos o campo COMPRAS_CODIGO_ID, que é o campo que é utilizado para indicar a qual compra pertence aqueles itens.
Se eu quisesse apagar os campos da tabela de ITENSCOMPRA direto, eu apenas indicaria o código da compra e o SQL excluiria todos os registros da tabela ITENSCOMPRA que contivessem o campo COMPRAS_CODIGO_ID com o valor igual ao informado por mim. No seu caso, no seu comando SQL, ficaria assim :
UPDATE PRODUTOSGRADE SET QUANTIDADE= :QTDE WHERE <CAMPO_CODIGO_PRODUTO> = 2
onde na expressão <CAMPO_CODIGO_PRODUTO> voce substituiria pelo campo, da tabela PRODUTOSGRADE que indica o produto que voce quer excluir, entendeu ???
Qualquer duvida mande a estrutura das duas tabelas para que eu e o pessoal do forum possa visualizar mais claramente... |
|
| Voltar ao Topo |
|
 |
RODRIGOSOUZArios Novato

Registrado: Sábado, 16 de Julho de 2005 Mensagens: 84 Localização: varginha
|
Enviada: Sex Jan 11, 2008 3:28 pm Assunto: |
|
|
Ok. Então vamos lá amigo... Eu tenho duas tabelas uma tabela chamada PRODUTOS, e uma outra tabela chamada PRODUTOSGRADE.
campos da tabela PRODUTOS = codigo_produto (pk) ,codigo_linha,codigo_marca,descr_produto
camps da tabela PRODUTOSGRADE = codigo_produto (fk), codigo_barra, cor, quantidade
A estrutura da tabela está acima, o que eu preciso é dar um update no campo Quantidade (TABLE PRODUTOSGRADE), onde que o campo Codigo_Linha é igual a 2 (TABLE PRODUTOS)...
Entende? eu preciso atualizar apenas um campo de uma Filho....
Ja tentei de várias maneiras, UPDATE COM INNER JOIN, ETC..ETC...
Abraços... |
|
| Voltar ao Topo |
|
 |
Brunog3 Aprendiz

Registrado: Domingo, 16 de Dezembro de 2007 Mensagens: 206
|
Enviada: Sex Jan 11, 2008 3:46 pm Assunto: |
|
|
Tente Assim:
| Código: |
UPDATE GRADE G SET QUANTIDADE = 0
WHERE EXISTS (SELECT * FROM PRODUTOS P WHERE
G.COD_PRODUTO = P.CODIGO AND P.LINHA = 2)
|
Espero que dê certo! até + |
|
| Voltar ao Topo |
|
 |
RODRIGOSOUZArios Novato

Registrado: Sábado, 16 de Julho de 2005 Mensagens: 84 Localização: varginha
|
Enviada: Seg Jan 14, 2008 2:50 pm Assunto: |
|
|
Rapaz,, funfou que uma maravilha, aí está um verdadeiro exemplo de UPDATE com relacionamentos em Firebird...
Valew - Abraços... |
|
| Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|