Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

damata

select em três tabelas

Recommended Posts

Olá Pessoal,

 

Preciso de uma ajuda.

 

Tenho as seguintes tabelas:

 

 

Cliente

---------
nrocliente
nomecliente
enderecocliente
tipocliente

 

 

 

Cliefisica

------------
nrocliente
cpf

 

 

 

Cliejuridica

--------------
nrocliente
cnpj

 

 

Preciso fazer um select que me liste:

 

 

nrocliente, nomecliente, cpf ou cnpj (*), enderecocliente

 

 

Detalhe, o camo tipocliente traz a informação "F" para cliente pessoa fisica ou "J" para cliente pessoa juridica. Se este campo estiver com "F" o CPF está na tabela Cliefisica e se estiver com "J" no CNPJ está na Cliejuridica.

 

Alguma idéia de como posso realizar esse select?

 

Grato

 

Carlos da Mata

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma solução pode ser criar uma view

 

 

create or replace view as v_clientes
as
select 'f' tipo,nrocliente,cpf from Cliefisica 
union 
select 'j',nrocliente,cnpj
from Cliejuridica  

O join seria feito nesta view

Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta,

 

Fiz da seguinte forma:

 

create view vw_cliente (
clientnro,
clientnomrazao,
clifisnrocpf,
clijurnrocgc,
clientnomrua,
clientnroend,
clientdescomend,
clientnombairro,
clientnomcidade,
clientcodcep,
estadocod,
clientnroddd,
clientnrotel)
as
select
c.clientnro,
c.clientnomrazao,
f.clifisnrocpf,
c.clientnomrua,
c.clientnroend,
c.clientdescomend,
c.clientnombairro,
c.clientnomcidade,
c.clientcodcep,
c.estadocod,
c.clientnroddd,
c.clientnrotel
from tglclient c, tglclifis f
where c.clientnro = f.clientnro
and c.clientidtfisjur = 'F'
union all
select
c.clientnro,
c.clientnomrazao,
j.clijurnrocgc,
c.clientnomrua,
c.clientnroend,
c.clientdescomend,
c.clientnombairro,
c.clientnomcidade,
c.clientcodcep,
c.estadocod,
c.clientnroddd,
c.clientnrotel
from tglclient c, tglclijur j
where c.clientnro = j.clientnro and c.clientidtfisjur = 'J'

 

Só que está dando erro "data type unknown. Creio que o problema esteja no fato do atributo clifisnrocpf na tabela tglclifis é char(11) e o atributo clijurnrocgc na tabela tglclijur é char(15). Pode ser esse o motivo do erro, e se for como posso resolver?

 

Agradeço peja ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

1 tente criar a view sem esta coluna para ver se é isto, se for ou preencha o campo maior com rancos ou faça um subtr no maior

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.