Ajuda com consulta em SQL

Delphi

13/01/2004

Possuo três tabelas num banco Paradox.
Tabelas Empresas.db, Funcionarios.db, Exames.db.
Na tabela Funcionarios.db possuo um campo Codigo do tipo Integer e outro campo EmpresaCod do tipo Integer que repete o código da empresa cadastrada na tabela Empresas.db.
Na tabela Exames.db possuo um campo Renovacao do tipo Date e outro campo FuncionarioCodigo do tipo Integer que repete o código do funcionário cadastrado em Funcionarios.db.
Criei um Form para realizar uma pesquisa. Neste form coloquei um ComboBox, um Button e dois DBGrid. No ComboBox coloquei os meses do ano(Janeiro até Dezembro). Quando clico no Button, no primeiro DBGrig aparecem os nomes das empresas que possuem funcionários que possuem exames com mês de renovação igual ao do ComboBox. Quando clico no nome de uma empresa que está no primeiro DBGrid, faço com que apareçam os nomes dos funcionarios que possuem exames com mês de renovação igual ao do ComboBox no segundo DBGrid. A pesquisa funciona corretamente, mas como posso fazer para que no segundo DBGrid apareça também a data de renovação que fica na tabela exames?

Código de pesquisa para o segundo DBGrid:

DmSGIMO.QryExamesRenovacao1.Close;
DmSGIMO.QryExamesRenovacao1.SQL.Clear;
DmSGIMO.QryExamesRenovacao1.SQL.Add(´SELECT Nome FROM Funcionarios.db WHERE EmpresaCod =´ + IntToStr(CodigoEmpresa) + ´AND´);
DmSGIMO.QryExamesRenovacao1.SQL.Add(´ Codigo IN (SELECT DISTINCT FuncionarioCodigo FROM Exames.db WHERE EXTRACT (month FROM Renovacao)=´ + IntToStr(MesEscolhido) + ´ AND EXTRACT(year FROM Renovacao) =´ + IntToStr(AnoEscolhido) + ´) ORDER BY Nome´);
DmSGIMO.QryExamesRenovacao1.Open;


Rmarcelop

Rmarcelop

Curtidas 0

Respostas

Rock.it

Rock.it

13/01/2004

Ola

Bem eu não testei mas acho q vai dar certo,
DmSGIMO.QryExamesRenovacao1.Close; 
DmSGIMO.QryExamesRenovacao1.SQL.Clear; 
DmSGIMO.QryExamesRenovacao1.SQL.Add(´SELECT Nome, Exames.Renovacao FROM Funcionarios.db´);
DmSGIMO.QryExamesRenovacao1.SQL.Add(´Inner Join Exames.db´);
DmSGIMO.QryExamesRenovacao1.SQL.Add(´on (funcionarios.Codigo = exames.FuncionarioCodigo)´);
DmSGIMO.QryExamesRenovacao1.SQL.Add(´WHERE EmpresaCod =´ + IntToStr(CodigoEmpresa) + ´AND´); 
DmSGIMO.QryExamesRenovacao1.SQL.Add(´ Codigo IN (SELECT DISTINCT FuncionarioCodigo FROM Exames.db WHERE EXTRACT (month FROM Renovacao)=´ + IntToStr(MesEscolhido) + ´ AND EXTRACT(year FROM Renovacao) =´ + IntToStr(AnoEscolhido) + ´) ORDER BY Nome´); 
DmSGIMO.QryExamesRenovacao1.Open;


So desculpe por não testar o código, mas acho q dará certo

[]s


:arrow: rock.it


GOSTEI 0
POSTAR