SQL no lugar de um campo: Como colocar mais de um campo?

Firebird

01/11/2005

Olá amigos

Esta sql funciona corretamente.


SELECT CODIGO,
CODITEM,
TIPO,
CODGRUPO,
CODSUBGRUPO,
CODSERVICO,
QUANTIDADE,
case TIPO
when ´M´ then
([b:6283fa61e9]SELECT MATERIAL FROM MATERIAL
WHERE MATERIAL.CODIGO=componente.coditem[/b:6283fa61e9])
when ´E´ then
(SELECT EQUIPAMENTO FROM EQUIPAMENTO
WHERE EQUIPAMENTO.CODIGO=componente.coditem)
when ´O´ then
(SELECT MAODEOBRA FROM MAODEOBRA
WHERE MAODEOBRA.CODIGO=componente.coditem)
end
as item
from COMPONENTE
where componente.codservico=27


Porém, na parte em negrito preciso exibir vários campos. Como é uma sql no lugar de um campo a sql só permite um campo. Como fazer uma solução para ter o mesmo resultado e listar vários campos na parte em negrito.

Considere que neste campo os dados podem vir de 3 tabelas diferentes para cada registro, dependendo do valor do campo TIPO da tabela componente.

Se ficou difícil de entender peçam mais comentários.

Grato por qualquer ajuda.
Delmar Wichnieski


Delmar

Delmar

Curtidas 0

Respostas

Delmar

Delmar

01/11/2005

reescrevendo com identação para facilitar a leitura
SELECT
CODIGO, CODITEM, TIPO, CODGRUPO, CODSUBGRUPO, CODSERVICO, QUANTIDADE, case TIPO [quote:6c5172c03c]when ´M´ then [b:6c5172c03c](SELECT MATERIAL FROM MATERIAL WHERE MATERIAL.CODIGO=componente.coditem)[/b:6c5172c03c] when ´E´ then (SELECT EQUIPAMENTO FROM EQUIPAMENTO WHERE EQUIPAMENTO.CODIGO=componente.coditem) when ´O´ then (SELECT MAODEOBRA FROM MAODEOBRA WHERE MAODEOBRA.CODIGO=componente.coditem)
end
as item [/quote:6c5172c03c]
from COMPONENTE
where componente.codservico=27


GOSTEI 0
Afarias

Afarias

01/11/2005

neste caso, um Stored Proc acho q seria melhor opção


T+


GOSTEI 0
POSTAR