none
consulta em duas tabelas RRS feed

  • Pergunta

  • Pessoal,
    tenho duas tabelas Servidor e UF
    na tabela Servidor tenho um FK UF_Codigo
    e na UF uma PK codigo, porem na Tabela Servidor
    tenho um campo natural_uf (que eh a naturalidade, que eh codigo)
    e tenho tambem um campo (localidade_codigo)
    minha duvida eh
    como faço o select para o campo localidade_codigo mostrar
    a descrição da Tabela UF
    Minha instrução eh esta

    Select Nome,uf_descricao as uf, uf_descricao as Localidade
    From Servidor s inner join UF uf
    On s.uf_codigo = uf.codigo

    Conseguiram entender!
    Maricelmo
    quarta-feira, 3 de fevereiro de 2010 14:00

Respostas

  • Maricelmo,

    veja se é isso:

    Select s.Nome, u1.suf_descricao as uf, u2.uf_descricao as Localidade
    From Servidor s inner join UF u1
    On s.uf_codigo = u1.codigo
    inner join UF u2
    On s.Localidade_codigo = u2.codigo
    Luiz Roseiro
    • Sugerido como Resposta Luiz Roseiro quarta-feira, 3 de fevereiro de 2010 15:22
    • Marcado como Resposta Maricelmo quarta-feira, 3 de fevereiro de 2010 15:52
    quarta-feira, 3 de fevereiro de 2010 15:22

Todas as Respostas

  • Boa Tarde Maricelmo,

    Ficou um pouco confuso, mas vamos lá. Você quer que nessa consulta apareça a descrição da UF como se fosse o campo localidade_codigo? é isso?


    Luiz Roseiro

    quarta-feira, 3 de fevereiro de 2010 14:06
  • Ola, Luiz
    vou tentar melhorar.

    Tabela Servidor
    campos

    Nome                  natural_uf (FK), Localidade_codigo
    Maricelmo            21                    23

    Tabela UF
    Codigo Sigla Descricao
    1          AC   Acre
    .
    .
    .

    Select Nome,uf_descricao as uf, uf_descricao as Localidade
    From Servidor s inner join UF uf
    On s.uf_codigo = uf.codigo

    Resposta
    Nome                Uf               Localidade
    Maricelmo         RN               RN

    e a resposta correta seria Localidade igual a RO pois o codigo
    da localidade eh 23

    conseguiu entender agora
    Maricelmo
    quarta-feira, 3 de fevereiro de 2010 14:18
  • Boa tarde,
    Ainda está meio confuso, mas faça o teste.

    Select Nome,
              uf_descricao as uf,
              uf_descricao as Localidade

    From Servidor s inner join UF uf
          On (s."campo Localidade_codigo" = uf.codigo)

    Abs.


    Vinicius Fonseca. MCTS - Sql Server 2005 / ITIL Classifique as respostas.
    • Sugerido como Resposta Fonseca_SI quarta-feira, 3 de fevereiro de 2010 15:33
    quarta-feira, 3 de fevereiro de 2010 14:52
  • Maricelmo,

    veja se é isso:

    Select s.Nome, u1.suf_descricao as uf, u2.uf_descricao as Localidade
    From Servidor s inner join UF u1
    On s.uf_codigo = u1.codigo
    inner join UF u2
    On s.Localidade_codigo = u2.codigo
    Luiz Roseiro
    • Sugerido como Resposta Luiz Roseiro quarta-feira, 3 de fevereiro de 2010 15:22
    • Marcado como Resposta Maricelmo quarta-feira, 3 de fevereiro de 2010 15:52
    quarta-feira, 3 de fevereiro de 2010 15:22
  • Ola, Fonseca_SI

    obrigado por sua resposta, mas ainda
    não funcionou!

    na Tabela Servidor, imagine campos com os dados de servidor
    Nome, Endereco, Data de Nascimento, UF onde nasceu (campo naturalidade Codigo FK),
    numero dos documentos pessoais UF onde foram tirado (campo Localidade Codigo)

    na Tabela UF tenho todos os estado do brasil
    Codigo (PK) uf_Sigla, uf_Descricao

    acontece que na instrução, estou
    comparando os campos ou igualando os campos
    s.uf_codigo = uf.codigo

    Select Nome,uf_descricao as uf, uf_descricao as Localidade
    From Servidor s inner join UF uf
    On s.uf_codigo = uf.codigo

    até aqui tudo blz, mas como vou trazer
    a Descrição do campo s.Localidade da tabela UF.
    que tambem eh codigo na tabela Servidor.

    então o resultado do select eh este:

    Nome                UF                Localidade
    Maricelmo          RN               RN

    porem os dados da tebela Servidor são estes:

    Nome                UF               Localidade
    maricelmo         21               23

    e eu preciso que traga os dados desta forma:

    Nome               UF               Localidade
    Maricelmo         RN              RO

    Conseguiu entender!

    Maricelmo
    quarta-feira, 3 de fevereiro de 2010 15:36
  • Maricelmo,

    Veja o código que postei acima... acho que resolve seu problema.


    Luiz Roseiro
    quarta-feira, 3 de fevereiro de 2010 15:44
  • Obrigado Luiz Roseiro

    Funcionou exatamente como queria!
    Maricelmo
    quarta-feira, 3 de fevereiro de 2010 15:52