Ir para conteúdo

Arquivado

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

Herberth Nilsen

[Resolvido] Resgatar vários valores de uma só coluna

Recommended Posts

Galera, tô tendo problemas aqui com o meu FB, é o seguinte

 

Tenho uma tabela que recebe vários códigos de funcionários e aloca para uma determinada função

 

acontece que só é guardado o código desses funcionários nesta tabela, e preciso resgatar o nome deles que está armazenado na tabela de funcionários

 

então efetuei a seguinte select

 

SELECT
		   ST31.*, 
		   CA5.C_NOME_COLABORADOR AS REPSOBRA,
		   CA5.c_nome_colaborador AS RESPLIB  ,
		   CA5.c_nome_colaborador AS SEGRESP,
		   CA5.c_nome_colaborador AS ENCOBRA
	   FROM
		   CA0500 CA5, //Tabela do cadastro de funcionários
		   ST0310 ST31 //Tabela onde está armazenado o cód. do funcionário a uma função(cargo)
	   WHERE
		   ST31.c_id_apr='2'
	   AND
		   ST31.c_cod_resp_obra=CA5.c_cod_colaborador
	   AND
		   ST31.c_cod_resp_liberacao=CA5.c_cod_colaborador
	   AND
		   ST31.c_cod_resp_seguranca=CA5.c_cod_colaborador
	   AND
		   ST31.c_cod_encarregado=CA5.c_cod_colaborador
	   ORDER BY
		   C_ID_APR

mas está errado, o FB não me retorna valor, agora se eu colocar o mesmo código removendo todos os 'ANDs' e deixando apenas o primeiro irá funcionar pois deixa de ter conflito com as igualdades dos campos da primeira tabela com o campo c_cod_colaborador, mas só que me retorna, em todos os campos que eu solicito(AS RESPOBRA, AS RESPLIB, etc..) ficam com o mesmo funcionário

 

 

Como que resolvo essa select???

 

abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você precisa colocar 4 vezes a tabela de funcionário, um para cada campo, algo como:

 

SELECT ST31.*, CA51.C_NOME_COLABORADOR AS REPSOBRA, CA52.c_nome_colaborador AS RESPLIB, CA53.c_nome_colaborador AS SEGRESP, CA54.c_nome_colaborador AS ENCOBRA
FROM CA0500 CA51, CA0500 CA52, CA0500 CA53, CA0500 CA54, ST0310 ST31
WHERE ST31.c_id_apr='2' AND ST31.c_cod_resp_obra=CA51.c_cod_colaborador AND ST31.c_cod_resp_liberacao=CA52.c_cod_colaborador AND ST31.c_cod_resp_seguranca=CA53.c_cod_colaborador AND ST31.c_cod_encarregado=CA54.c_cod_colaborador
ORDER BY C_ID_APR

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você precisa colocar 4 vezes a tabela de funcionário, um para cada campo, algo como:

 

SELECT ST31.*, CA51.C_NOME_COLABORADOR AS REPSOBRA, CA52.c_nome_colaborador AS RESPLIB, CA53.c_nome_colaborador AS SEGRESP, CA54.c_nome_colaborador AS ENCOBRA
FROM CA0500 CA51, CA0500 CA52, CA0500 CA53, CA0500 CA54, ST0310 ST31
WHERE ST31.c_id_apr='2' AND ST31.c_cod_resp_obra=CA51.c_cod_colaborador AND ST31.c_cod_resp_liberacao=CA52.c_cod_colaborador AND ST31.c_cod_resp_seguranca=CA53.c_cod_colaborador AND ST31.c_cod_encarregado=CA54.c_cod_colaborador
ORDER BY C_ID_APR

 

opá

 

firmeza marcio, era isso mesmo, mas agora já está resolvido, só tive que fazer alguns ajustes aqui, mas funcionou belezinha

 

valeuuu

 

abs.

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.