我相信这个查询会满足你的要求
SELECT t.OrderNr, t.CompanyName, b.OrderStatusName
FROM
(
SELECT
OrderNr,
CompanyName,
max(OrderStatusID) AS 'maxOrderStatus'
FROM [NB].[dbo].[Npos]
GROUP BY OrderNr, CompanyName
) t
JOIN [NB].[dbo].[Npos_Order_Status_Name] as b
ON t.maxOrderStatus = b.OrderStatusID
或使用窗口功能
SELECT t.*
FROM
(
SELECT
a.*,
row_number() over (partition by OrderNr, CompanyName order by OrderStatusID desc) rn
FROM [NB].[dbo].[Npos] as a
INNER JOIN [NB].[dbo].[Npos_Order_Status_Name] as b
ON a.OrderStatusID = b.OrderStatusID
) t
WHERE rn = 1
然而,根据我的经验,在某些情况下,第二种变体可能会稍微慢一些。