PDA

Ver la Versión Completa : ¿cómo puedo hallar el mínimo de la diferencia de 2 campos de todos los registros?


nuri
28-07-2005, 13:10:06
Hola a todos, ya estoy aki dando guerra.
Tengo una tabla con tres campos,ID(Number), fecha(tipo date) y matricula (tipo Alfanumérico), a partir de un registro tengo que calcular el registro cuya diferencia de fechas sea mínima.
Sería algo así:

Query1.SQL.Text:='SELECT * FROM TABLA WHERE "MINIMO(FECHA,:datofecha)"'


Siendo "datofecha" un parámetro y fecha un campo de la tabla.
¿existe alguna función similar?
La tabla es en paradox y tengo delphi5.
Gracias a quien pueda darme una idea.
Atentamente
Nuri

Neftali [Germán.Estévez]
28-07-2005, 13:22:47
Creo que puedes obtener el mismo resultado haciendo una consulta sobre la tabla con un WHERE por la fecha y luego ordenando (ORDER BY); La primera fecha (TOP 1) será la más próxima.

En todo caso un UNION para obtener la más cercana "por encima" y la más cercana "por abajo"; Luego es cuestión de entre esas dos escoger una.

No se si me he explicado bien...


SELECT TOP 1 FROM TABLA WHERE FECHA>:datofecha ORDER BY FECHA ASC
UNION
SELECT TOP 1 FROM TABLA WHERE FECHA<:datofecha ORDER BY FECHA DESC


Te debería dar las dos fechas más cercanas (creo :D).

nuri
28-07-2005, 13:26:08
okis gracias, voy a probar.....;)

marcoszorrilla
28-07-2005, 13:40:43
Siento decir que Paradox no incluye la claúsula Top.

Un Saludo.

Neftali [Germán.Estévez]
28-07-2005, 13:56:57
ohhhhhhhhhhhhhhhhhhhhhhhhh!!!!!!

Lo siento, escribí mucho y pensé poco.... :(

marcoszorrilla
28-07-2005, 13:58:44
Es que Paradox es paradójico..............

Un Saludo.

nuri
28-07-2005, 15:52:38
No importa puesto que me has dado la idea y lo he solucionado.
Muchas gracias a ambos.
Ahora la duda que tengo es cómo sé si una consulta no devuelve nada.
Atentamente;)
Nuri

marcoszorrilla
28-07-2005, 17:51:33
Puedes saber si devuelve algo o no:
MiConsulta.IsEmpty;
//ó
MiConsulta.RecordCount > 0;

Un Saludo.

nuri
28-07-2005, 18:34:57
okis gracias.;)