none
Select com exclusao RRS feed

  • Pergunta

  • Pessoal boa tarde,

    Preciso saber se existe alguma forma de resolver o problema, no comando abaixo:

    select  tblwripessoas.Nome, tblWRIDocumentos.Numero_Documento, tblWRITpParticipacao.Descricao, tblwrireal.PK_Num_Livro

    from tblWRIAtosParticipantes

    inner join tblWRITpParticipacao on tblWRITpParticipacao.PK_Id = tblWRIAtosParticipantes.FK_tblWRITpParticipacao_Id

    inner join tblwripessoas on tblwripessoas.PK_id = tblWRIAtosParticipantes.FK_tblWRIPessoas_Id

    inner join tblwriatosnegocios on tblwriatosnegocios.PK_ID = tblWRIAtosParticipantes.FK_tblWRIAtosNegocios_Id

    left join tblwriatos on tblwriatos.PK_Id = tblWRIAtosNegocios.FK_tblWRIAtos_Id

    left join tblwrireal on tblwrireal.PK_Id = tblwriatos.FK_tblWRIReal_Id

    inner join tblwridocumentos on tblwridocumentos.FK_tblWRIPessoas_Id = tblwripessoas.PK_id

    where tblWRIDocumentos.Numero_Documento = '59536425000162'

    Nome                                                 Documento           Participacao            Livro

    AGROPECUÁRIA FAZENDA         59536425000162   Proprietário          74856
    AGROPECUÁRIA FAZENDA         59536425000162   Transmitente        74856
    PEDRO LUIS CONCEIÇÃO         59536425000162      Proprietário         88892
    MARIA SILVA CARVALHO           59536425000162   Proprietária          52385

    Deste resultado eu precisava apenas onde o pessoal é proprietario, e onde nao é transmitente. ou seja neste caso o registro 74856 nao deveria nem aparecer, pois neste registro a AGROPECUARIA, é proprietario e transmitente ao mesmo tempo. Ou seja eu preciso de todos os registros onde a pessoa fisica ou juridica é proprietaria mas nao pode ser transmitente. Neste exemplo acima deveria aparecer apenas o PEDRO LUIS CONCEIÇÃO e MARIA SILVA CARVALHO. Como posso resolver isso ?    

    Obrigado


    • Editado Luis_Fernando2 quinta-feira, 13 de fevereiro de 2014 15:12 acres
    quinta-feira, 13 de fevereiro de 2014 15:09

Respostas

Todas as Respostas

  • Deleted
    quinta-feira, 13 de fevereiro de 2014 15:16
  • Olá jose

    A tabela participação ( tblwritpparticipacao) é composto pelos seguintes campos:

    PK_ID - Participacao - Descricao

    Então um select nesta tabela viria da seguinte forma:

    PK_ID  - Participacao     -  Descricao

    568        Transmitente   -  Transmitente

    569        Proprietario     -   Proprietario

    570        Proprietaria     -   Prorprietaria

    571        Adquirente       -  Adquirente

    Tem 4 mil registros nesta tabela

    quinta-feira, 13 de fevereiro de 2014 15:22
  • Deleted
    quinta-feira, 13 de fevereiro de 2014 15:29
  • Desculpa a pergunta, mas onde eu faço os inner joins, neste comando que voce passou?
    quinta-feira, 13 de fevereiro de 2014 15:32
  • Deleted
    quinta-feira, 13 de fevereiro de 2014 15:41
  • Acho que não entendi sua pergunta, ou se entendi a resposta é logica e extremamente fácil

    Basicamente vc quer fazer a consulta onde Numero_Documento=X e Participação não seja Y

    select  tblwripessoas.Nome, tblWRIDocumentos.Numero_Documento,tblWRITpParticipacao.Descricao, tblwrireal.PK_Num_Livro
    from tblWRIAtosParticipantes
    inner join tblWRITpParticipacao on tblWRITpParticipacao.PK_Id =tblWRIAtosParticipantes.FK_tblWRITpParticipacao_Id
    inner join tblwripessoas on tblwripessoas.PK_id =tblWRIAtosParticipantes.FK_tblWRIPessoas_Id
    inner join tblwriatosnegocios on tblwriatosnegocios.PK_ID =tblWRIAtosParticipantes.FK_tblWRIAtosNegocios_Id
    left join tblwriatos on tblwriatos.PK_Id = tblWRIAtosNegocios.FK_tblWRIAtos_Id
    left join tblwrireal on tblwrireal.PK_Id = tblwriatos.FK_tblWRIReal_Id
    inner join tblwridocumentos on tblwridocumentos.FK_tblWRIPessoas_Id =tblwripessoas.PK_id
    where   tblWRIDocumentos.Numero_Documento='59536425000162' and Participacao not in ('Transmitente')




    vai funcionar que é uma beleza!

    Agora dicas..Perfomance
    quantos inner join... com certeza utilize isso em uma stored procedure.
    VC esta fazendo join com varias tabelas eu utilizaria o with(no lock) para não 'locker' as tabelas.

    ex:

    Select x,y,z from tabela with(no lock)  inner joing tabela 2 with(no lock) On tabela1.coluna1 = tabela2.coluna2 where...etc..cetc

    Abraços, precisando só avisar...e se resolver da um ok:D

    quinta-feira, 13 de fevereiro de 2014 16:00
  • Jose o comando deu certo, nao tem erro.

    Mas nao trouxe resultado nenhum, e teria que trazer algum resultado.

    Voce acha que pode ser algo com o indice que voce mencionou?

    quinta-feira, 13 de fevereiro de 2014 16:11
  • Deleted
    quinta-feira, 13 de fevereiro de 2014 16:16
  • Perfeito Jose, deu certo.

    O nosso amigo leonardo acredito nao entendeu a questao, mas mesmo assim obrigado.

    Jose mais uma vez sem palavras.

    Muito obrigado.

    quinta-feira, 13 de fevereiro de 2014 16:40
  • Deleted
    • Marcado como Resposta Luis_Fernando2 quinta-feira, 13 de fevereiro de 2014 17:02
    quinta-feira, 13 de fevereiro de 2014 16:50
  • Funcionou jose.

    Obrigado novamente.

    Vou marcar como resposta.

    quinta-feira, 13 de fevereiro de 2014 17:02
  • Deleted
    quinta-feira, 13 de fevereiro de 2014 17:13