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:
mas nao me retornou nada... como proceder?
Desde já agradeço...
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.CODINTFUNCmas nao me retornou nada... como proceder?
Desde já agradeço...
Flavio Silva
Curtir tópico
+ 0
Responder
Posts
21/10/2011
Gustavo Bretas
Flavio, tenta colocar o select abaixo antes do FROM, para que ele trabalho como uma coluna, entende?
Se vc coloca depois do FROM ele trabalha como uma tabela!
Testa aí!
Att
(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.
Deu certinho... obrigado.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)