我只是无法在单个查询中解决这个问题。TblQcProduction
表对生产订单上的每个运算符(operator)都有一个记录。
我需要找出根据生产订单报告的最后一个运算符(operator)是谁。
SELECT IDX, ProdOrder, Operator
FROM dbo.TblQCProduction
返回:
IDX ProdOrder Operator
8050745 325184 13012
8050746 325184 13035
8050747 325184 13036
8050748 325186 13005
8050749 325186 13038
8050750 325187 13022
8050751 325191 13022
8050752 325191 13035
我需要输出为(通过 prodOrder 返回 MAX IDX 的运算符):
IDX ProdOrder Operator
8050747 325184 13036
8050749 325186 13038
8050750 325187 13022
8050752 325191 13035
我对分组或子查询感到不满意 - 我觉得会有一个非常简单的答案。
最佳答案
你需要使用 ROW_NUMBER() OVER
select IDX,ProdOrder,Operator
from
(
select IDX,ProdOrder,Operator,
ROW_NUMBER() OVER
(PARTITION BY ProdOrder ORDER BY IDX DESC) as rn
from TblQCProduction
) as T
WHERE RN=1;
SQLFiddle demo
关于sql - SQL Server 子查询的新手 - 希望是一个简单的查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19027223/