Fórum Pegar dois campos em uma tabela. #408649

20/10/2011

0

Pessoal, blz?

Então preciso de uma consulta que busque todos os tipos de documentos associados a um funcionario, fora outros informações de outras tabelas como função, empresa, etc.

Acontece que na tabela de documentos temos os campos:
CODINTFUNC = código do funcionario
NRDOCTO = numero do documento
TIPODOC = tipo do documento (CPF,CTPS,CNH, etc).

Acontece que eu preciso do CPF e CTPS do funcionário fora as outras informações de outras tabelas, e o numero do CPF e do CTPS estão no mesmo campo NRDOCTO difenrenciando o TIPO.

Criei um select assim:

SELECT DISTINCT
         
         DECODE(F.CODIGOEMPRESA,1,EMPRESA DE ONIBUS VILA GALVAO LTDA,
                         2,ABC TRANSPORTES COLETIVOS VALE DO PARAIBA LTDA,
                         3,RAPIDO DOESTE LTDA,
                         4,CISNE BRANCO TRANSPORTES E TURISMO LTDA,
                         5,NIFF EMPREENDIMENTOS E PARTICIPACOES LTDA,
                         6,VIACAO ARUJA LTDA,
                         7,VGI ADMINISTRACAO DE BENS E PARTICIPACOES LTDA,
                         8,VIACAO TRANSNORTE LTDA,
                         9,EXPRESSO CAMPIBUS LTDA,
                         13,RIBE TRANSPORTES LTDA)EMPRESA,
         
         DECODE(F.CODIGOEMPRESA,1,49.068.737/0001-35,
                         2,45.176.864/0001-05,
                         3,55.958.318/0001-71,
                         4,06.767.974/0001-81,
                         5,08.834.514/0001-54,
                         6,00.472.135/0001-50,
                         7,09.138.837/0001-76,
                         8,VIACAO TRANSNORTE LTDA,
                         9,07.286.417/0002-92,
                         13,RIBE TRANSPORTES LTDA)CNPJ,

          CPF.NRDOCTO CPF,
          CTPS.NRDOCTO CTPS,
          CTPS.CTPSSERIEDOCTO SERIE,
          F.CHAPAFUNC CHAPA,
          FU.DESCFUNCAO CARGO,
          F.NOMEFUNC  NOME,
          H.CODAREA AREA

FROM

          (SELECT D1.NRDOCTO
           FROM    FLP_DOCUMENTOS D1,
                          FLP_FUNCIONARIOS F1
           WHERE F1.CODINTFUNC = D1.CODINTFUNC
            AND       D1.TIPODOCTO = CPF)CPF,

          (SELECT D2.NRDOCTO, D2.CTPSSERIEDOCTO
           FROM    FLP_DOCUMENTOS D2,
                   FLP_FUNCIONARIOS F2
           WHERE F2.CODINTFUNC = D2.CODINTFUNC
           AND       D2.TIPODOCTO = CTPS)CTPS,
            
           FLP_FUNCIONARIOS F,
           FLP_HISTORICOSALARIAL H,
           FLP_FUNCAO FU,
           FLP_DOCUMENTOS D 

WHERE         F.CHAPAFUNC = 000001
AND           (F.SITUACAOFUNC = A OR F.SITUACAOFUNC = F)
AND           FU.CODFUNCAO  = H.CODFUNCAO
AND           F.CODINTFUNC = H.CODINTFUNC
AND           D.NRDOCTO = CTPS.NRDOCTO
AND           D.NRDOCTO = CPF.NRDOCTO
AND           D.CODINTFUNC = F.CODINTFUNC


mas nao me retornou nada... como proceder?

Desde já agradeço...
Flavio Silva

Flavio Silva

Responder

Posts

21/10/2011

Gustavo Bretas

Flavio, tenta colocar o select abaixo antes do FROM, para que ele trabalho como uma coluna, entende?

(SELECT D1.NRDOCTO
FROM FLP_DOCUMENTOS D1,
FLP_FUNCIONARIOS F1
WHERE F1.CODINTFUNC = D1.CODINTFUNC
AND D1.TIPODOCTO = CPF)CPF,

(SELECT D2.NRDOCTO, D2.CTPSSERIEDOCTO
FROM FLP_DOCUMENTOS D2,
FLP_FUNCIONARIOS F2
WHERE F2.CODINTFUNC = D2.CODINTFUNC
AND D2.TIPODOCTO = CTPS)CTPS


Se vc coloca depois do FROM ele trabalha como uma tabela!

Testa aí!

Att
Responder

Gostei + 0

24/10/2011

Flavio Silva

Valeu mesmo man...

Deu certinho... obrigado.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar