А если так?
X++:
FromDate fromDate = 05\01\2011;
ToDate toDate = 20\02\2011;
ItemId itemId = ...;
InventLocationId inventLocationId = ...
RetailItemPriceHistory retailItemPriceHistory;
RetailItemPriceHistory retailItemPriceHistoryJoin;
select minof(NewPrice) from retailItemPriceHistory
where retailItemPriceHistory.ItemId == itemId &&
retailItemPriceHistory.InventLocationId == inventLocationId &&
retailItemPriceHistory.TransDate <= toDate
notexists join retailItemPriceHistoryJoin
where retailItemPriceHistoryJoin.ItemId == retailItemPriceHistory.ItemId &&
retailItemPriceHistoryJoin.InventLocationId == retailItemPriceHistory.InventLocationId &&
retailItemPriceHistoryJoin.TransDate > retailItemPriceHistory.TransDate &&
retailItemPriceHistoryJoin.TransDate <= fromDate;