Fórum Como motar um UpDate baseado na pesquisa entre duas tabelas #459534
25/10/2013
0
Olá, mais um pedido de socorro!!!
Tenho no BD Firebird 4 tabelas: TB_Estado, TB_Cidade, TB_Bairro, TB_Endereco
o bicho papão é: criei e adicionei dados para essas tabelas atravéz de scripts até aqui tudo beleza
sendo: TB_Estado 27 registros TB_Cidade 9.920 registros TB_Bairro 56.016 registros TB_Endereco 849.344 registros
quando tentei criar relacionamento entre as tabelas pelos campos ID foi que percebi que na TB_Endereco existe alguns endereços que ID da cidade não existe
Ai então na TB_Endereco criei um novo campo FLEG_DELETE varchar(1)
preciso fazer um UPDATE percorendo todos os registros da TB_Endereco e gravando no campo FLEG_DELETE = 'S' se caso END_CIDADE_ID <> CIDADE_ID
Campos da TB_CIDADE
Cidade_ID integer (PK)
Cidade_UF_ID integer (FK)
Cidade_CEP_GERAL varchar(8)
Cidade_DESCRICAO varchar(35)
Campos da TB_ENDERECO
Endereco_Bairro_ID interger (FK)
Endereco_Cidade_ID integer (FK)
Endereco_CEP varchar(8)
Endereco_Logradouro varchar(150)
Endereco_Complemento varchar(50)
FLEG_DELETE varchar(1)
como montar um um UpDate para gravar na TB_Endereco no campo FLEG_DELETE = ''S' se Endereco_Cidade_ID <> Cidade_ID
desculpe os blablas é q estou tentando deixar mais claro possivel o entendimento
Tenho no BD Firebird 4 tabelas: TB_Estado, TB_Cidade, TB_Bairro, TB_Endereco
o bicho papão é: criei e adicionei dados para essas tabelas atravéz de scripts até aqui tudo beleza
sendo: TB_Estado 27 registros TB_Cidade 9.920 registros TB_Bairro 56.016 registros TB_Endereco 849.344 registros
quando tentei criar relacionamento entre as tabelas pelos campos ID foi que percebi que na TB_Endereco existe alguns endereços que ID da cidade não existe
Ai então na TB_Endereco criei um novo campo FLEG_DELETE varchar(1)
preciso fazer um UPDATE percorendo todos os registros da TB_Endereco e gravando no campo FLEG_DELETE = 'S' se caso END_CIDADE_ID <> CIDADE_ID
Campos da TB_CIDADE
Cidade_ID integer (PK)
Cidade_UF_ID integer (FK)
Cidade_CEP_GERAL varchar(8)
Cidade_DESCRICAO varchar(35)
Campos da TB_ENDERECO
Endereco_Bairro_ID interger (FK)
Endereco_Cidade_ID integer (FK)
Endereco_CEP varchar(8)
Endereco_Logradouro varchar(150)
Endereco_Complemento varchar(50)
FLEG_DELETE varchar(1)
como montar um um UpDate para gravar na TB_Endereco no campo FLEG_DELETE = ''S' se Endereco_Cidade_ID <> Cidade_ID
desculpe os blablas é q estou tentando deixar mais claro possivel o entendimento
Everaldo Torres
Curtir tópico
+ 0
Responder
Posts
04/11/2013
Eliel Martins
Olá Everaldo.
Eu faria desta forma, segue abaixo o código.
Espero ter ajudado.
Eu faria desta forma, segue abaixo o código.
UPDATE TB_ENDERECO SET FLEG_DELETE = 'S'
WHERE END_CIDADE_ID NOT IN (SELECT CIDADE_ID FROM TB_CIDADE)Espero ter ajudado.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)