Usuário com melhor resposta
Select com exclusao

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
Respostas
-
Deleted
- Marcado como Resposta Luis_Fernando2 quinta-feira, 13 de fevereiro de 2014 17:02
Todas as Respostas
-
-
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
-
-
-
-
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..cetcAbraços, precisando só avisar...e se resolver da um ok:D
-
-
-
-
Deleted
- Marcado como Resposta Luis_Fernando2 quinta-feira, 13 de fevereiro de 2014 17:02
-
-