Usuário com melhor resposta
Problemas com criação de View

Pergunta
-
Blz Pessoal,
Estou com um problema, na minha aplicação tenho 4 tabelas com a seguinte estrutura.
- Tb_Pessoa
Id
Nome
Tipo(F/J)
- Tb_Pessoa_Juridica
id_Pessoa
CPNJ
Inscrição Estadual
- Tb_Pessoa_Física
id_Pessoa
RG
CPF
- Tb_Pessoa_End
Tipo
Rua
O problema que estou precisando fazer um view que mostre todos os dados juntos pois na mesma view o seja cnpj, cpf, rg.
Outro forma que tentei fazer utilizando if e case e não consegui foi criar um campo que de acordo com o campo tb_Pessoa.Tipo seja selecionado o CNPJ ou CPF.
valeu
Respostas
-
Robinson,
faça com UNION
select p.id,
p.nome,
'PJ' as tipo,
CNPJ as cnpj_cpf,
'' as RG,
endereco.rua
from Tb_Pessoa p inner join Tb_Pessoa_Juridica pj on (p.id = pj.id_pessoa)
inner join Tb_Pessoa_End endereco on (endereco.id_pessoa = p.id)
union
select p.id,
p.nome,
'PF' as tipo,
CPF as cnpj_cpf,
RG,
endereco.rua
from Tb_Pessoa p inner join Tb_Pessoa_Fisica pj on (p.id = pj.id_pessoa)
inner join Tb_Pessoa_End endereco on (endereco.id_pessoa = p.id)Ajude a melhorar o nosso Forum!
Não esqueça de marca a mensagem como "útil", caso tenha ajudado.
Todas as Respostas
-
Robinson,
faça com UNION
select p.id,
p.nome,
'PJ' as tipo,
CNPJ as cnpj_cpf,
'' as RG,
endereco.rua
from Tb_Pessoa p inner join Tb_Pessoa_Juridica pj on (p.id = pj.id_pessoa)
inner join Tb_Pessoa_End endereco on (endereco.id_pessoa = p.id)
union
select p.id,
p.nome,
'PF' as tipo,
CPF as cnpj_cpf,
RG,
endereco.rua
from Tb_Pessoa p inner join Tb_Pessoa_Fisica pj on (p.id = pj.id_pessoa)
inner join Tb_Pessoa_End endereco on (endereco.id_pessoa = p.id)Ajude a melhorar o nosso Forum!
Não esqueça de marca a mensagem como "útil", caso tenha ajudado. -
-
Dá uma olhada no exemplo
Select A.Id,A.Nome,A.Tipo,B.CNPJ,B.InscricaoEstadual,C.RG,C.CPF,D.Tipo,D.Rua
From
Tb_Pessoa A
Left Outer Join TB_Pessoa_Juridica B On B.Id_Pessoa = A.Id
Left Outer Join TB_Pessoa_Fisica C On C.Id_Pessoa = A.Id
Inner Join TB_Pessoa_End D On D.IdPessoa = A.IdEspero ter ajudado
-
tenta algo do tipo
select
P
.Id,P
.Nome,P
.Tipo,isnull
(PJ.CPNJ,'')[CPNJ],isnull
(PJ.InscricaoEstadual,'')[InscricaoEstadual],isnull
(PF.RG,'')[RG],isnull
(PF.CPF,'')[CPF],isnull
(E.Tipo,'')[Tipo],isnull
(E.Rua,'')[Rua] from Tb_Pessoa Pleft
join Tb_Pessoa_Juridica PJ on P.Id = PJ.id_Pessoa and P.Tipo = 'J'left
join Tb_Pessoa_Física PF on P.Id = PF.id_Pessoaleft
join Tb_Pessoa_End E on P.Id = E.id_Pessoaacredito que deva dar certo
[]s
-
-