| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
bunen Novato

Registrado: Terça-Feira, 27 de Dezembro de 2011 Mensagens: 41
|
Enviada: Ter Jan 24, 2012 10:16 pm Assunto: Select |
|
|
Boa noite!!
Gostaria de fazer uma busca a qual mostrasse campos de tabelas diferentes. Por exemplo: selecionar os campos c1, c2 da tabela1 onde o c1 = 2 e selecionar os campos c1, c2 da tabela2 onde c1 = 3. Tem como fazer isso?
Consegui fazer com que mostre os valores que quero, porém, aparecem somente os dois primeiros campos, os valores dos outros dois aparecem juntos com os outros.
Exemplo do resultado:
Codigo | Total
2 100
3 500
Gostaria que fosse dessa maneira:
ID_Cliente | Total | ID_Conta | Saldo
2 100 3 500
Alguém sabe? |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Ter Jan 24, 2012 10:34 pm Assunto: |
|
|
Boa noite
A princípio você deve utilizar um join.
Supondo que a tabela2 possui a coluna ID_Cliente, que é uma foreign key referenciando a tabela1, a query ficaria mais oue menos como segue:
| Código: | select t1.ID_Cliente, t1.Total, t2.ID_Conta, t2.Saldo
from Tabela1 as t1
join Tabela2 as t2 on t2.ID_Cliente = t1.ID_Cliente
where (t1.ID_Cliente = :ID_Cliente) and (t2.ID_Conta = :ID_Conta) |
obs: em vez de deixar os valores fixos (c1 = 2 ou c1 = 3) utilizei parâmetros
Espero que seja útil.
_________________
Assinatura: Imoveis a venda em Suzano |
|
| Voltar ao Topo |
|
 |
bunen Novato

Registrado: Terça-Feira, 27 de Dezembro de 2011 Mensagens: 41
|
Enviada: Qua Jan 25, 2012 12:08 am Assunto: |
|
|
Deu certo, Muito obrigado!
Só não sei como utilizar parâmetros nesse caso.
Esse tipo de busca com mais de uma tabela, só daria certo com chave estrangeira certo? |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qua Jan 25, 2012 9:26 am Assunto: |
|
|
O caracter de dois pontos (:) na instrução é utilizado para especificar o nome de um parâmetro.
Ao executar a query pelo IBExpert será exibida uma janela para o preenchimento dos valores.
Antes de executar a query pela aplicação em delphi será necessário utilizar código para preenchimento dos valores. Ex (o código pode variar um pouco de acordo com o componente utilizado para executar a query):
| Código: | Query1.ParamByName('ID_Cliente').AsInteger := 100;
Query1.ParamByName('ID_Conta').AsInteger := 200'; |
Sobre a chave estrangeira, obrigatória não é mas é recomendada para garantir a integridade dos dados e obter melhor desempenho.
Espero que ajude. |
|
| Voltar ao Topo |
|
 |
|