SQL выбирает отличное значение, где Status = MAX - PullRequest
1 голос
/ 14 марта 2019

У меня есть таблица ErpInformations.

OrderId PartNo Status  
4711  |  1510 |  0  
4711  |  1511 |  0  
4711  |  1512 |  1  
4712  |  1513 |  3  
4712  |  1514 |  0  
4713  |  1515 |  0  
4713  |  1516 |  0  

Я хочу запрос "выбрать отдельный", который показывает мне только идентификаторы заказа с максимальным статусом, который имеет одна из частей.

Результат:

4711 | 1  
4712 | 3  
4713 | 0

У кого-нибудь есть решение?

Моя первая попытка будет:

select distinct(OrderId), 
       (select max(Status) from ErpInformations) 
  from ErpInformations;

Но, конечно, я получаю общий максимальный статус. Как я могу ограничить это?

Ответы [ 3 ]

3 голосов
/ 14 марта 2019

Вы можете попробовать использовать MAX с group by напрямую

select OrderId,max(Status) 
from ErpInformations
group by OrderId 
1 голос
/ 14 марта 2019

Это может быть достигнуто с помощью функции Group by Claus и Max.

SELECT ORDERID, MAX(STATUS) FROM ERPINFORMATIONS GROUP BY ORDERID;

Сценарий SQL отображает различные ORDERID с максимальным доступным статусом.

0 голосов
/ 14 марта 2019

Очень просто достичь результата

select OrderId,max(Status) from ErpInformations
group by OrderId 
...