Предполагается, что приведенный ниже пример запроса возвращает пару самых последних заказов для каждого клиента (вместо всех заказов):
select
Order.ID,
Order.Customer_ID,
Order.PlacementDate
from
Order
where
Order.ID in
(
select top 2
RecentOrder.ID
from
Order as RecentOrder
where
RecentOrder.Customer_ID = Order.Customer_ID
order by
RecentOrder.PlacementDate Desc
)
Такой запрос можно использовать в вашем подотчете, чтобы избежать использования временной таблицы.
CAVEAT EMPTOR: я не тестировал этот пример запроса, и я не знаю, будет ли этот запрос работать для отчета, работающего с базой данных Jet (мы не используем Access для хранения данных и избегаем отчетов Access, таких как чума: -). Но это должно против SQL Server.
Я также не знаю, насколько хорошо это будет работать в вашем случае. Как обычно, это зависит. : -)
Кстати, говоря о производительности и взломах. Я бы не считал использование временной таблицы взломом. В худшем случае этот трюк можно рассматривать как более сложный, чем необходимый, интерфейс к отчету. :-) И использование такой временной таблицы на самом деле может быть одним из хороших способов улучшить производительность. Так что не спешите списывать это со счетов. : -)