[RESOLVIDO] - Ajuda com Select

Galera,

Gostaria de uma ajuda de vcs. Eu tenho que fazer um select que me retorne o Nome e CNPJ da Concessionaria e o Nome e CNPJ do Convenente em Debito. Só que o problema é que Credor pode ser uma Convessionaria(quando ele estiver na tabela de concessionaria Concessionaira.idConvCredor) e pode ser um Convenente em Debito(quando ele estiver na tabela de ConvenenteDebito.IDEN_CREDOR).

Eu comecei a pensar desta forma, só que eu nao consigo pegar o nome e cnpj na tabela de credor quando o registro é Concessionaria ou Convenente. Eu acho que eu tenho que fazer um select dentro do Join mas nao to conseguindo fazer. Alguem pode me ajudar?

SELECT 
    conv.iden_credor_concessionaria           AS idConvConcessionaria,
    conv.iden_credor                          As idConvCredor,
    credor.cpf_cnpj                           AS credorCpfCnpj,
    credor.nome_raz_social                    AS credorNome
  FROM
    ConvenenteDebito conv    
  JOIN
    Concessionaria conce
  ON
    conv.iden_credor_concessionaria = conce.iden_credor_concessionaria
  JOIN
    Credor credor
  ON   
    conv.iden_credor = credor.iden_credor

As tabelas são essas:

Concessionaria
-------------------------------------------------
idConvConcessionaria NOT NULL NUMBER(10)    
idConvCredor         NOT NULL NUMBER(10)    
credorCpfCnpj                 NUMBER(14)    
credorNome                    VARCHAR2(100)

ConvenenteDebito
-------------------------------------------------
IDEN_CONVENENTE_DEBITO     NOT NULL NUMBER(8)    
IDEN_CREDOR_CONCESSIONARIA NOT NULL NUMBER(10)   
IDEN_CREDOR                NOT NULL NUMBER(10)   
ID_USUARIO                 NOT NULL NUMBER       
DATA_DEBITO_ATUAL          NOT NULL DATE         
VALR_DEBITO_ATUAL          NOT NULL NUMBER(15,2) 
DATA_DEBITO_ANTERIOR                DATE         
DATA_GERACAO_ARQUIVO                DATE         
DATA_CADASTRO              NOT NULL DATE         
DATA_ATUALIZACAO                    DATE         
IDEN_VERSAO                NOT NULL NUMBER(8)

Credor
-------------------------------------------------
IDEN_CREDOR         NOT NULL NUMBER(10)    
FLAG_TIPO_CREDOR    NOT NULL NUMBER(8)     
RAMO_ATIVIDADE      NOT NULL VARCHAR2(100) 
DATA_CADASTRO       NOT NULL DATE          
DATA_ATUALIZACAO             DATE          
FLAG_FATURA_CHEQUE  NOT NULL NUMBER(8)     
IDEN_VERSAO         NOT NULL NUMBER(8)     
ID_USUARIO          NOT NULL NUMBER(8)     
FLAG_SITUACAO       NOT NULL NUMBER(8)     
ID_CIDADE                    NUMBER(8)     
NOME_RAZ_SOCIAL              VARCHAR2(100) 
CPF_CNPJ                     NUMBER(14)    
FLAG_FISCO_ESTADUAL          NUMBER(8)

[quote=pvrsouza]

SELECT 
    conv.iden_credor_concessionaria           AS idConvConcessionaria,
    conv.iden_credor                          As idConvCredor,
    credor.cpf_cnpj                           AS credorCpfCnpj,
    credor.nome_raz_social                    AS credorNome
  FROM
    ConvenenteDebito conv    
  JOIN
    Concessionaria conce
  ON
    conv.iden_credor_concessionaria = conce.iden_credor_concessionaria
  left JOIN
    Credor credor
  ON   
    conv.iden_credor = credor.iden_credor

Utilize left join na segunda condição deve resolver seu problema …

Resolvido galera.

A ideia foi essa :

SELECT 
    convenente.iden_credor_concessionaria           AS idConvenenteConcessionaria,
    convenente.iden_credor                          AS idConvenenteCredor,
    concessionaria.cpf_cnpj                         AS concessionariaCpfCnpj,
    concessionaria.nome_raz_social                  AS concessionariaNome,
    credor.cpf_cnpj                                 AS credorCnpj,
    credor.nome_raz_social                          AS credorNome
  FROM
    ACWTB0468 convenente    
  JOIN
    ACWTB0024 concessionaria
  ON
    convenente.iden_credor_concessionaria = concessionaria.iden_credor
  JOIN
    ACWTB0024 credor
  ON   
    convenente.iden_credor = credor.iden_credor

A ideia foi fazer dois joins com alias diferentes.