ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

SQL: Dúvida em relacionamento entre tabelas

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
LFer
Novato
Novato


Registrado: Quinta-Feira, 15 de Fevereiro de 2007
Mensagens: 3

MensagemEnviada: Qui Fev 15, 2007 1:16 pm    Assunto: SQL: Dúvida em relacionamento entre tabelas Responder com Citação

Olá, consideremos as seguintes tabelas

Tabela A
Data Valor
10/02/2007 18
11/02/2007 19
12/02/2007 17
14/02/2007 23

Tabela B
Data Qtde Numero
12/02/2007 10 001
10/02/2007 22 002
13/02/2007 01 003

Então, vamos a SQL

Eu quero que ele traga os campos Data, Qrte, Numero da tabela B e também o campo Valor correspondente da tablea A.

Ficaria
Select B.*, A.Valor
From A, B
Where B.Data= A.Data

O que eu quero de extra é, se não há data correspondente na tabela A (como no caso do dia 13/02/2007 da tabela B), ele pegue a data imediatamente inferior, nesse caso, 12/02/2007. Não há limite de distância entre as datas, apenas se a data não for encontrada ele deve procurar uma data anterior.

É possível fazer isso com apenas 1 consulta? Estou utilizando Firebird 1.5.3.4870
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
thomazs
Moderador
Moderador


Registrado: Segunda-Feira, 1 de Março de 2004
Mensagens: 2835

MensagemEnviada: Qui Fev 15, 2007 1:32 pm    Assunto: Responder com Citação

Código:

Select B.*, A.Valor
From B
LEFT OUTER JOIN A ON
  ((A.DATA = B.DATA) OR 
  (A.DATA =
    (SELECT FIRST 1 DATA FROM A A1 WHERE A1.DATA <B.DATA ORDER BY DATA))


Teste esse código. Fiz, porém não testei.
_________________
Suporte e Consultoria em Desenvolvimento de Sistemas
Bacharel em Sistemas de Informação
Especialista em Bancos de Dados
Desenvolvimento: Clipper, Delphi, PHP, Python/Django
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB