Prueba con esto:
Código Delphi
[-]
Query.Close;
Query.SQL.Text := 'select numerocontador, fecha, lectura, consumo ' +
'from lecturas where (fecha = (select first 1 fecha from lecturas where fecha <= ' +
QuotedStr(fechamask.text) + ' order by fecha desc)) group by ' +
'numerocontador, fecha, lectura, consumo order by fecha desc';
Query.open;
Con esto, obtienes la lectura de contadores de la fecha dada ó de la inmediatamente última lectura anterior a la indicada.
Saludos
__________________
Óscar Salvador Páez Aprendiendo a aprehender de quienes aprehenden, sin cerciorarse de sus edades, culturas, sexos, razas, creencias u orígenes, es la forma más sabia de aprehender.