SQL select 不同的值,其中 Status = MAX

SQL select distinct value where Status = MAX

我有一个 Table 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  

我想要 "select distinct" 只向我显示其中一个部件具有最大状态的 OrderId 的查询。

结果:

4711 | 1  
4712 | 3  
4713 | 0

有人有解决办法吗?

我的第一次尝试是:

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

但我当然获得了整体最高状态。我该如何限制它?

你可以试试直接用MAXgroup by

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

可以用Group by Clause和Max Function来实现

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

SQL 脚本显示具有最大可用状态的不同 ORDERID。

实现结果很简单

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