Fórum Consulta por mês (SQL) #185764

02/10/2003

0

Preciso otimizar uma consulta de aniversariantes. Hoje tenho mais de 20 linhas, com um select diferente para cada mês. Preciso de um select onde informo o mês, e ele procure todos os aniversariantes daquele mês.
Por exemplo mês 1, todos os aniversariantes compreendidos entre 1 de janeiro e 31 de janeiro.

Valew..


Gdonati

Gdonati

Responder

Posts

02/10/2003

Motta

depende do banco,

sendo paradox vc pode usar a function Extract
veja detalhes no help

localsql.hlp


Responder

Gostei + 0

02/10/2003

Tiocassio

pode fazer entre datas desta forma
SELECT * FROM table
WHERE data BETWEEN 01/10/2004 AND 31/10/2004



Responder

Gostei + 0

02/10/2003

Edineidaniel

Olá,

Posso te propor um Select entre intervalos de datas, que funciona bem:
Só vc vai ter que informar o intervalo...

No Evento OnClick do Button
query1.close;
query1.SQL.Clear;
query1.sql.add(´select * from aniversariantes´);
query1.sql.add(´where Datanasc >= :data1 and Datanasc <=: data2´);
query1.sql.add(´order by datainicial´);
query1.params[0].asdatetime:=strtodate(Edit2.text);
query1.params[1].asdatetime:=strtodate(Edit3.text);
query1.open;
query1.active:=true;

Vc pode mostrar os dados em um dbgrid..

t+

Edinei


Responder

Gostei + 0

03/10/2003

Gdonati

isso eu sei, acontece que eh ANIVERSARIO, ou seja, se vc nasceu no dia 10/10/2000 ou dia 10/10/1985, seu aniversário será em outubro, e eh isso que eu preciso saber :)
Preciso de uma consulta que eu informe apenas o MES.


Responder

Gostei + 0

03/10/2003

Luizfernando777

Tenta o seguinte:
monta a query
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add( ´ SELECT Dt_Nasc, Codigo, Nome ´);
SQL.Add( ´ FROM Clientes ´);
SQL.Add( ´ WHERE ( Dt_Nasc IS NOT NULL ) ´);
SQL.Add( ´ ORDER BY Dt_Nasc ´);
Prepare;
Open;
end;
na propriedade da Query
Filtered := True;
no evento onFilterRecord

var
Dia, Mes, Ano : Word;
begin
DecodeDate(Query1Dt_Nasc.Value, Ano, Mes, Dia);
Accept := ( Mes = 3 );
end;


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar