DUVIDA EM SELECT
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
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
qual é o banco de dados
SQL Server.
Que bom que é sqlserver, você pode usar o case para esta situação.
veja
este é o caminho
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
Muito obrigado Marcelo
Eu vou experimentar.
Obrigado e um Abraço
Eu vou experimentar.
Obrigado e um Abraço
Tópico encerrado , respostas não são mais permitidas