Задать вопрос
@TroyashkA

Как получить одну строку имеющую MAX(priority) в MSSQL?

Приветствую.

Имеются таблички "Клиенты" и "Заказы". Связь по ID клиента.
В таблице "Заказы" также имеются поля "Дата заказа" и "Приоритет заказа".

Задача: получить клиента и, если существует, его последний заказ с максимальным приоритетом. Клиента надо получать в любом случае, даже если заказов у него нет.

p.s. подразумевается, что ответом будет 1 строка, содержащая информацию о клиенте и его заказе
  • Вопрос задан
  • 2234 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
SELECT
  ClientSet.*
FROM ClientSet LEFT JOIN (SELECT
                          *
                          ,ROW_NUMBER() OVER (PARTITION BY Client_Id ORDER BY Priority ) as rn
                         FROM OrderSet) on OrderSet.Client_Id=ClientSet .ID
WHERE OrderSet.rn=1 OR OrderSet.rn IS NULL


Вроде так должно получится
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы