Fórum Como fazer uma pesquisa (SQL) em Paradox ?? #241163

03/07/2004

0

como fazer uma pesquisa em sql em base paradox onde:

- achar a maior data dentre cada grupo sendo que essa data tem de ser maior que ´01/01/2004´.

eu fiz o seguinte:

select insc, max(data) as ultimo
from tabela
where data>´01/01/2004´
group by insc

so que o where deveria filtrar a data do resultado do max(data), e não faz isso.

Espero que tenha dado para entender, obrigado.


Canuto

Canuto

Responder

Posts

03/07/2004

Adilsond

Para filtrar no grupo utilize o having

with MinhaQuery do
  begin
    if Active then
       Close;
    SQL.Clear;
    SQL.Add(´select insc,´);
    SQL.Add(´         max(data) as ultimo´);
    SQL.Add(´from tabela´);
    SQL.Add(´group by insc´);
    SQL.Add(´having max(data) > :pData´);
    SQL.Add(´order by 1´); // ordena pela primeira coluna
    ParamByName(´pData´).AsDate := StrToDate(´01/01/2004´);
    Open;
  end;


Só que no seu caso, o sql acima terá o mesmo resultado do sql abaixo:

with MinhaQuery do
  begin
    if Active then
       Close;
    SQL.Clear;
    SQL.Add(´select insc,´);
    SQL.Add(´         max(data) as ultimo´);
    SQL.Add(´from tabela´);
    SQL.Add(´where data > :pData´);
    SQL.Add(´group by insc´);
    SQL.Add(´order by 1´); // ordena pela primeira coluna
    ParamByName(´pData´).AsDate := StrToDate(´01/01/2004´);
    Open;
  end;



Responder

Gostei + 0

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

Aceitar