DUVIDA EM SELECT

SIDSIL 01/10/2014 12:36:44
#441628
Boa Tarde Amigos

Estou com uma duvida em uma Clausula Select.

Eu estou usando o componente Reportx (Para gerar relatorios) que alguns devem conhecer e tenho um relatorio onde devo pegar um campo de mesmo nome mas de tabelas diferentes de acordo com uma condicao.

Por exemplo, eu tenho o campo, Navio,Origem,Destino em duas tabelas e um capo de Status, que quando for 1 eu pego esses 3 campos da tabela [Ô]A[Ô] e quando o Status for 2, pego os mesmos valores da tabela [Ô]B[Ô].

Existem outras tabelas envolvidas e mais condicoes a serem testadas mas esse é o meu problema principal.

Normalmente eu faria dois relatorios pegando os 3 campos separadamente de cada tabela, entretanto eu gostaria de ter apenas um relatorios,pois e um relatorio de abertura de registros e sendo assim o que importa e o registro aberto e nao se os dados vem da tabela [Ô]A[Ô], ou [Ô]B[Ô].

Vale ressaltar que quando o Status for =1, eu tenho um campo relacionado a tabela [Ô]A[Ô] e quando for 2, eu nao tenho e tambem nao preciso,pois quando o status for 1, eu busco esses 3 campos da tabela [Ô]A[Ô] e quando for 2, esses campos estarao apenas na tabela [Ô]B[Ô].

Espero que voces tenham entendido.

Obrigado e um Abraço
MARCELO.TREZE 01/10/2014 20:54:14
#441642
Resposta escolhida
qual é o banco de dados
SIDSIL 02/10/2014 02:38:56
#441645
SQL Server.
MARCELO.TREZE 02/10/2014 11:01:09
#441655
Que bom que é sqlserver, você pode usar o case para esta situação.

veja

SELECT status,
CASE status
WHEN 1 THEN (
SELECT A.Navio,A.Origem,A.Destino FROM tabelaA A
)
WHEN 2 THEN (
SELECT B.Navio,B.Origem,B.Destino FROM tabelaB B
)
ELSE
END
FROM tabelaA A


este é o caminho




SIDSIL 03/10/2014 16:54:06
#441689
Muito obrigado Marcelo

Eu vou experimentar.

Obrigado e um Abraço
Tópico encerrado , respostas não são mais permitidas