ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Update em SQL

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
RODRIGOSOUZArios
Novato
Novato


Registrado: Sábado, 16 de Julho de 2005
Mensagens: 84
Localização: varginha

MensagemEnviada: Sex Jan 11, 2008 12:54 pm    Assunto: Update em SQL Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Ghost_Rider
Colaborador
Colaborador


Registrado: Segunda-Feira, 6 de Outubro de 2003
Mensagens: 4437

MensagemEnviada: Sex Jan 11, 2008 2:36 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
RODRIGOSOUZArios
Novato
Novato


Registrado: Sábado, 16 de Julho de 2005
Mensagens: 84
Localização: varginha

MensagemEnviada: Sex Jan 11, 2008 3:28 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Brunog3
Aprendiz
Aprendiz


Registrado: Domingo, 16 de Dezembro de 2007
Mensagens: 206

MensagemEnviada: Sex Jan 11, 2008 3:46 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
RODRIGOSOUZArios
Novato
Novato


Registrado: Sábado, 16 de Julho de 2005
Mensagens: 84
Localização: varginha

MensagemEnviada: Seg Jan 14, 2008 2:50 pm    Assunto: Responder com Citação

Rapaz,, funfou que uma maravilha, aí está um verdadeiro exemplo de UPDATE com relacionamentos em Firebird...


Valew - Abraços...
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB