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

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

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

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

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

p.s. подразумевается, что ответом будет 1 строка, содержащая информацию о клиенте и его заказе
  • Вопрос задан
  • 2236 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Инженер по тестированию
    5 месяцев
    Далее
  • Яндекс Практикум
    Java-разработчик
    10 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик расширенный
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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


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

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

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