Проблема со скалярным подзапросом — обработка нескольких значений

#sql #sql-server

#sql #sql-сервер

Вопрос:

У меня возникла ситуация с запросом, который я создал, который содержит запрос в операторе select (я полагаю, что он называется скалярным подзапросом). КАК вы знаете, при использовании подзапроса в Select statement….at по крайней мере, единственный известный мне способ … может обрабатывать только одно возвращаемое значение.

В любом случае, я пытаюсь вернуть в подзапросе дату назначения типа, который у 99% наших клиентов есть только один раз. Однако бывают ситуации, когда у этого 1% было две или более таких встреч. Мне нужна только последняя дата. Может ли кто-нибудь помочь мне с логикой, позволяющей справляться с ситуациями с несколькими строками и получать только самую последнюю дату.

 (SELECT SSUSED_1.usedate
 FROM SS AS SS_1
 INNER JOIN SSUSED AS SSUSED_1 ON SS_1.ssid = SSUSED_1.ssid
 WHERE MEMBERS.memid = SS_1.memid AND SS_1.productid = 326 AND SSUSED_1.transactiontype = 'Use') AS SecondUsed
 

Комментарии:

1. Можете ли вы показать полный запрос?

Ответ №1:

Похоже, вы можете просто использовать MAX?

 SELECT MAX(SSUSED_1.usedate)
FROM SS AS SS_1
INNER JOIN SSUSED AS SSUSED_1 ON SS_1.ssid = SSUSED_1.ssid
WHERE MEMBERS.memid = SS_1.memid AND SS_1.productid = 326 AND SSUSED_1.transactiontype = 'Use'