Нарисовался заказчик, мучительно вспоминаю SQL
Firebird 1.5, 3 диалект.
Таблица:
CREATE TABLE TIME_DISCOUNT (
TDID IDS /* IDS = INTEGER NOT NULL */,
TIMES TIME NOT NULL,
WDAYS NUMERIC(5,2),
WEND NUMERIC(5,2)
);
Задача - по известному значению времени TIMES определить соответствующие значения WDAYS и WEND при условии, что TIMES<=заданного.
Пока наваялась такая порнография:
SELECT MAX(times), wdays, wend FROM TIME_DISCOUNT WHERE times<=:t1
GROUP BY wdays, wend ORDER BY 1 DESC
Тогда первая запись результирующего набора будет содержать требуемое. Но хочется попроще и поэлегантней.
Можно еще ХП написать, которая будет дергать максимально значение TIMES, не превышающее введенное. а по нему пинать запроси вытаскивать требуемые значения, но опять не комильфо.