Я пытаюсь написать запрос SQL для DB2 Версии 8, который извлекает самый последний порядок определенной части для списка пользователей. Запрос получает параметр, который содержит список номеров customerId и номера partId. Например,
Таблица заказов
OrderID
PartID
CustomerID
OrderTime
Я изначально хотел попробовать:
Select * from Order
where
OrderId = (
Select orderId
from Order
where
partId = #requestedPartId# and customerId = #customerId#
Order by orderTime desc
fetch first 1 rows only
);
Проблема с вышеприведенным запросом заключается в том, что он работает только для одного пользователя, и мой запрос должен включать несколько пользователей.
У кого-нибудь есть предложения о том, как можно расширить вышеуказанный запрос для работы с несколькими пользователями? Если я уберу свой «извлечь только первые 1 строки», он вернет все строки вместо самых последних. Я также попытался использовать Max (OrderTime), но не смог найти способ вернуть OrderId из суб-выбора.
Спасибо!
Примечание: DB2 Версии 8 не поддерживает функцию SQL "TOP".