Duas tabelas no dbgrid

24/02/2006

Estou usando firebird, tenho duas tabelas e queria mostrar um resultado de select com as duas em um dbgrid, tem como fazer isso? :?:


Rjcerri

Respostas

24/02/2006

Paullsoftware

claro!

use uma Query e faça assim:

SELECT LOC.CODIGO AS LOCACAO, LOC.locatario, LOC.dataretorno AS RETORNO,
       DET.COD_FILME AS FILME,DET.NOME_FILME AS TITULO ,
       DET.DEVOLVIDO FROM DETLOCACAO DET
       LEFT JOIN LOCACAO LOC ON (DET.LOCACAO=LOC.CODIGO)
            WHERE ( LOC.PAGO = ´N´ OR ( LOC.PAGO IS NULL ) ) AND ( DET.DEVOLVIDO =´N´ OR (DET.DEVOLVIDO IS NULL))


aqui seleciono determinados campos de duas tabelas! :wink:


Responder Citar

08/03/2006

Rjcerri

Desculpe amigo mas não entendi a query.


Responder Citar

08/03/2006

Adriano Santos

claro! use uma Query e faça assim:
SELECT LOC.CODIGO AS LOCACAO, LOC.locatario, LOC.dataretorno AS RETORNO,
       DET.COD_FILME AS FILME,DET.NOME_FILME AS TITULO ,
       DET.DEVOLVIDO FROM DETLOCACAO DET
       LEFT JOIN LOCACAO LOC ON (DET.LOCACAO=LOC.CODIGO)
            WHERE ( LOC.PAGO = ´N´ OR ( LOC.PAGO IS NULL ) ) AND ( DET.DEVOLVIDO =´N´ OR (DET.DEVOLVIDO IS NULL))
aqui seleciono determinados campos de duas tabelas! :wink:


Opa, o que o PallSoftware quis dizer é que você pode fazer um Join entre as duas tabelas para então mostrar o resultado no DBGrid. Por exemplo:

SELECT 
  TABELA1.CODIGO, TABELA1.ENDERECO, TABELA1.BAIRRO,
  TABELA2.NOME, TABELA2.RG, TABELA2.CPF
FROM
  TABELA1
  INNER JOIN TABELA2
  ON (TABELA1.CODIGO = TABELA2.CODIGO_TABELA1
WHERE
  //SUA CONDIÇÃO


Veja se ficou mais claro assim, qq coisa é só gritar.
[/code]


Responder Citar

08/03/2006

Paullsoftware

Nessa query que te passei estou mostrando todas as loções que ainda possuem filmes que não foram devolvidos...

mostre a estrutura das suas duas tabelas que te dou um exemplo melhor de como usar...

Tabela Clientes (CodCli,CliNome, CliEnd...)
Tabela Dependentes(Cod, DepCodCli, DepNome,DepNasc...)

para mostrar todos e suas datas de nascimento seria +/- assim:

Select C.CodCli, C.CliNome, D.DepNome, D.DepNasc From Dependentes D
//Aqui digo que D=Tabela de Dependentes
//Agora faço a ligação entre as tabelas
Left Join Clientes C on (D.DepCodCli = C.CodCli)
// onde Digo também que C = Tebela de Clientes e que ele me mostre todos os dependentes pertencentes ao cliente atual
// Aqui digo para mostra o cliente de codigo 50
Where CodCli = 50


mais como eu falei, coloque ai a estrutura de suas tabelas dizendo o que vc quer e te dou outro exemplo :roll:


Responder Citar

08/03/2006

Adriano Santos

Nessa query que te passei estou mostrando todas as loções que ainda possuem filmes que não foram devolvidos... mostre a estrutura das suas duas tabelas que te dou um exemplo melhor de como usar... Tabela Clientes (CodCli,CliNome, CliEnd...) Tabela Dependentes(Cod, DepCodCli, DepNome,DepNasc...) para mostrar todos e suas datas de nascimento seria +/- assim:
Select C.CodCli, C.CliNome, D.DepNome, D.DepNasc From Dependentes D
//Aqui digo que D=Tabela de Dependentes
//Agora faço a ligação entre as tabelas
Left Join Clientes C on (D.DepCodCli = C.CodCli)
// onde Digo também que C = Tebela de Clientes e que ele me mostre todos os dependentes pertencentes ao cliente atual
// Aqui digo para mostra o cliente de codigo 50
Where CodCli = 50
mais como eu falei, coloque ai a estrutura de suas tabelas dizendo o que vc quer e te dou outro exemplo :roll:


É isso ai, fica mais fácil pra gente te ajudar. Não é difícil, muito pelo contrário. :P


Responder Citar

10/03/2006

Rjcerri

Tentei mas não deu certo as tabelas esta assim
tabela padrao
codigo,descricao

tabela prod
codigo,qtd,embalagem

no grid eu estou mostrando a prod

Obrigado


Responder Citar

10/03/2006

Rjcerri

Esqueci que a consulta e pela descrição do produto


Responder Citar

10/03/2006

Martins

Tentei mas não deu certo as tabelas esta assim tabela padrao codigo,descricao tabela prod codigo,qtd,embalagem no grid eu estou mostrando a prod Obrigado


Vc pode usar a lógica passada usando [color=darkblue:240918df4e][b:240918df4e]Inner Join[/b:240918df4e][/color:240918df4e]

SELECT 
  P1.CODIGO, P2.DESCRICAO, P1.QTD, 
  P1. EMBALAGEM FROM 
  PROD P1 
  INNER JOIN PADRAO P2 
  ON (P1.CODIGO = P2.CODIGO) 
WHERE 
  //SUA CONDIÇÃO 


Mais ou menos isso, aí vc coloca sua condição Ok!

Boa sorte!!


Responder Citar

10/03/2006

Rjcerri

Deu certo galera, estava dando mole agora consegui entender. obrigado a todos


Responder Citar

10/03/2006

Martins

Deu certo galera, estava dando mole agora consegui entender. obrigado a todos


Estamos aqui para aprendermos uns com os outros, ajudar um colega faz parte do nosso aprendizado e fazemos isso sempre que possível.

Valew!!


Responder Citar

16/10/2012

Henrique Rodrigues

E na grid, como vincular uma as colunas a uma consulta dinamica?
Responder Citar