none
Ajuda com comando SQL RRS feed

  • Pergunta

  • Ola pessoal,

    Preciso ver se existe a possibilidade de alguem me ajudar no comando abaixo:

    select tblwritipologradouro.TipoLogradouro, tblWRILogradouros.Logradouro, tblwrilogradouros.bairro, tblwriloteamento.Loteamento,

    tblwrilocalizacao.FK_tblWRILoteamento_Id

    from tblwrilogradouros

    inner join tblwriloteamento on tblwriloteamento.FK_tblWRICidades_Id = tblwrilogradouros.FK_tblWRICidades_Id

    inner join tblWRILocalizacao on tblwrilocalizacao.FK_tblWRILogradouros_Id = tblwrilogradouros.PK_Id

    inner join tblWRITipoLogradouro on tblwritipologradouro.PK_Id = tblwrilogradouros.FK_tblWRITipoLogradouro_Id

    where tblwrilogradouros.bairro = tblwriloteamento.Loteamento

    and tblwrilocalizacao.FK_tblWRILoteamento_Id is null

    order by logradouro asc

    O comando acima tras o resultado abaixo em 21 mil registros:

    TipoLogradouro       Logradouro               bairro      Loteamento          FK_tblWRILoteamento_Id

    Rua                               03                      Jardim Tropical       JARDIM TROPICAL            NULL    

    Rua                               04                      Jardim Paulista      JARDIM PAULISTA            NULL

    Meu problema é que eu preciso atualizar (update), o campo FK_tblwriloteamento com o PK_ID da tabela tblwriloteamento,

    para isso eu precisava que o FROM fosse da tabela tblwrilocalizacao que é onde esta o campo FK_tblwriloteamento.

    porem se eu fizer isso o resultado final é 0, ou seja nao me traz nenhum registro, caso o FROM seja da tabela

    de tbwrilocalizacao e eu preciso das condições que estão clausula where.

    where tblwrilogradouros.bairro = tblwriloteamento.Loteamento

    and tblwrilocalizacao.FK_tblWRILoteamento_Id is null

    ALGUEM PODE ME AJUDAR COM ISSO ?


                        

    terça-feira, 10 de dezembro de 2013 20:02

Respostas

  • Boa tarde,

    Eduardo, como ficou a sua query? Dessa forma?

    from tblWRILocalizacao
    inner join tblwrilogradouros
        on tblwrilogradouros.PK_Id = tblwrilocalizacao.FK_tblWRILogradouros_Id 
    inner join tblwriloteamento 
        on tblwriloteamento.FK_tblWRICidades_Id = tblwrilogradouros.FK_tblWRICidades_Id
    inner join tblWRITipoLogradouro 
        on tblwritipologradouro.PK_Id = tblwrilogradouros.FK_tblWRITipoLogradouro_Id

    De qualquer forma, acho que não é necessário deixar a tabela tblwrilocalizacao após o From para executar o Update:

    update tblWRILocalizacao
    set FK_tblwriloteamento = tblwriloteamento.Loteamento
    from tblwrilogradouros
    inner join tblwriloteamento 
        on tblwriloteamento.FK_tblWRICidades_Id = tblwrilogradouros.FK_tblWRICidades_Id
    inner join tblWRILocalizacao 
        on tblwrilocalizacao.FK_tblWRILogradouros_Id = tblwrilogradouros.PK_Id
    inner join tblWRITipoLogradouro 
        on tblwritipologradouro.PK_Id = tblwrilogradouros.FK_tblWRITipoLogradouro_Id
    where 
        tblwrilogradouros.bairro = tblwriloteamento.Loteamento
        and tblwrilocalizacao.FK_tblWRILoteamento_Id is null

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta Eduardo_soncim quarta-feira, 11 de dezembro de 2013 10:32
    terça-feira, 10 de dezembro de 2013 20:20

Todas as Respostas

  • Boa tarde,

    Eduardo, como ficou a sua query? Dessa forma?

    from tblWRILocalizacao
    inner join tblwrilogradouros
        on tblwrilogradouros.PK_Id = tblwrilocalizacao.FK_tblWRILogradouros_Id 
    inner join tblwriloteamento 
        on tblwriloteamento.FK_tblWRICidades_Id = tblwrilogradouros.FK_tblWRICidades_Id
    inner join tblWRITipoLogradouro 
        on tblwritipologradouro.PK_Id = tblwrilogradouros.FK_tblWRITipoLogradouro_Id

    De qualquer forma, acho que não é necessário deixar a tabela tblwrilocalizacao após o From para executar o Update:

    update tblWRILocalizacao
    set FK_tblwriloteamento = tblwriloteamento.Loteamento
    from tblwrilogradouros
    inner join tblwriloteamento 
        on tblwriloteamento.FK_tblWRICidades_Id = tblwrilogradouros.FK_tblWRICidades_Id
    inner join tblWRILocalizacao 
        on tblwrilocalizacao.FK_tblWRILogradouros_Id = tblwrilogradouros.PK_Id
    inner join tblWRITipoLogradouro 
        on tblwritipologradouro.PK_Id = tblwrilogradouros.FK_tblWRITipoLogradouro_Id
    where 
        tblwrilogradouros.bairro = tblwriloteamento.Loteamento
        and tblwrilocalizacao.FK_tblWRILoteamento_Id is null

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta Eduardo_soncim quarta-feira, 11 de dezembro de 2013 10:32
    terça-feira, 10 de dezembro de 2013 20:20
  • Obrigado pela ajuda, acredito que vai executar, porem deu esse erro:

    Msg 245, Level 16, State 1, Line 1
    Conversion failed when converting the varchar value 'VILA RICA' to data type smallint.

    Acredito que o erro venha da tabela tblwriloteamentos que tem esse conteudo:

    PK_ID      Loteamento

    60        VILA RICA 40 0 NULL 1 Itanguá 1967-11-03 00:00:00 0

    Como posso resolver?

    quarta-feira, 11 de dezembro de 2013 10:10
  • Gapimex,

    Deu certo, eu igualei o campo fk_tblwriloteamento = tblwriloteamento.pk_id

    Muito obrigado pela sua ajuda.

    Voce é o cara!

    quarta-feira, 11 de dezembro de 2013 10:32