none
Criar Procedure RRS feed

  • 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.
    terça-feira, 8 de dezembro de 2009 12:13

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
    terça-feira, 8 de dezembro de 2009 13:17

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
    begin

     

    UPDATE

     

    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

    terça-feira, 8 de dezembro de 2009 12:54
  • 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
    terça-feira, 8 de dezembro de 2009 13:17