Usuário com melhor resposta
Criar Procedure

Pergunta
-
Bom dia!Eu estou precisando de uma ajuda de vcs aqui.Vou explicar minha situação:Eu possuo duas tabelas, uma de cadastro de pessoa e outra de cadastro de municipio, na tabela de cadastro de pessoa eu possuo o nome, o municipio, o bairro, código de municipio, esse código vem da tabela de cadastro de municipio, na tabela de cadastro de municipio eu tenho o codigo de municipio, o municipio.O problema meu é seguinte, existem vários registros que estão vindo com o código de municipio nulos, isso na tabela de cadastro de pessoa.Eu preciso criar uma procedure para que busque o código de municipio na tabela de cadastro de municipio e grave na tabela de cadastro de pessoa e o unico campo em comum entre as duas tabelas é o nome do municipio.Esse código de municipio é o código do IBGE, eu não tenho nem idéia para começar a fazer essa procedure.Vcs podem me ajudar.Vlw.
Respostas
-
segue sugestão.
-- Esse select busca na tabela cadastro de pessoas todas q estão sem o código do município e faz um left join -- com a tabela de múnicipios pelo campo Município, para preencher o código q esta nulo. SELECT Pes.Nome, Pes.Bairro, Pes.Municipio, Pes.CodigoMunicipio, Mun.CodigoMunicipio FROM tbPessoa AS Pes LEFT JOIN tbMunicipio AS Mun ON P.Municipio = Mun.Municipio WHERE Pes.CodigoMunicipio IS NULL -- caso o resultado do select acima seja satisfatório vc efetua o update na tabela de pessoas. /* UPDATE Pes SET Pes.CodigoMunicipio = Mun.CodigoMunicipio FROM tbPessoa AS Pes LEFT JOIN tbMunicipio AS Mun ON P.Municipio = Mun.Municipio WHERE Pes.CodigoMunicipio IS NULL */
Se a minha ajuda lhe for útil não esqueça de classificar. Att. Leonardo Marcelino- Marcado como Resposta João Carlos Junior terça-feira, 2 de março de 2010 14:13
Todas as Respostas
-
Bom dia João Carlos?
Cara se vc manda-se as estruturas físicas das tabelas ficariam melhor, pois assim fica muito vago, tentei fazer algum
create
procedure dbo.alter_municipio
@nome varchar(50),
@municipio Varchar(100),
@bairro Varchar(100),
@cod_municipio Varchar(100)as
beginUPDATE
cadastro_pessoa
SET CP.MUNICPIO = @municipio
FROM CADASTRO_PESSOA CP
INNER JOIN MUNICIPIOS M
ON -- aqui vc faz a comparação
WHERE CP.MUNICPIO IS NULL
obs. O mais fácil é, criar um select na qual vc faz essa comparação e dai substitui pelo update, depois substitui pelos parametros..
Outra coisa esses códigos de municpios que estão nulos vc terá que levantar qual vai ser a regra de negocio para ele, seilá criar um codigo novo..
da o retorno que agente ajuda..
abs. Wagner -
segue sugestão.
-- Esse select busca na tabela cadastro de pessoas todas q estão sem o código do município e faz um left join -- com a tabela de múnicipios pelo campo Município, para preencher o código q esta nulo. SELECT Pes.Nome, Pes.Bairro, Pes.Municipio, Pes.CodigoMunicipio, Mun.CodigoMunicipio FROM tbPessoa AS Pes LEFT JOIN tbMunicipio AS Mun ON P.Municipio = Mun.Municipio WHERE Pes.CodigoMunicipio IS NULL -- caso o resultado do select acima seja satisfatório vc efetua o update na tabela de pessoas. /* UPDATE Pes SET Pes.CodigoMunicipio = Mun.CodigoMunicipio FROM tbPessoa AS Pes LEFT JOIN tbMunicipio AS Mun ON P.Municipio = Mun.Municipio WHERE Pes.CodigoMunicipio IS NULL */
Se a minha ajuda lhe for útil não esqueça de classificar. Att. Leonardo Marcelino- Marcado como Resposta João Carlos Junior terça-feira, 2 de março de 2010 14:13