Показать сообщение отдельно
Старый 30.01.2017, 15:55   #5  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,654 / 1158 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Вам же Wamr привел пример. Этот запрос можно реализовать в Query. Не пробовали запускать в SQL? Будет возвращать то, что нужно, даже если есть цены и после _DAET

Может, в таком виде будет нагляднее

X++:
SELECT *
FROM MyPrice P1
WHERE P1.TransDate <= _DATE
      AND NOT EXISTS(SELECT 1 FROM MyPrice P2 
                     WHERE P2.ItemId        = P1.ItemId 
                           AND P2.TransDate <= _DATE 
                           AND P2.TransDate > P1.TransDate)
1 - это константа. Число 1 Надо понимать буквально. Для подзапроса Exists не имеет значения, что именно он вернет. Важен сам факт наличия записи, а не ее содержимое. Поэтому и ставят константу. Хотя "ветераны программирования" предпочитают символ "x" по привычке. Вероятно, потому, что 1 символ - это 1 байт (ну, или 2 для UNICODE). А одно число - это 4 байта. Привычка экономить на всем
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: Товарищ ♂uatr (1).