JOIN聚合函数



我有一个表,显示了生产订单(OrderID)的生产步骤(PosID)以及它们将在哪台机器(MachID)上运行;我试图减少表以显示每个订单的一条记录-仍然打开的最低位置(字段"PosID")(字段"open"= Y);即订单的下一个生产步骤。

示例数据我有:

N

试试这个:

SELECT “OrderID”,“PosID”,“MachID” FROM (
SELECT 
T0.“OrderID”, 
T0.“PosID”, 
T0.“MachID”,
ROW_NUMBER() OVER (PARTITION BY “OrderID” ORDER BY “PosID”) RNK
FROM Table T0
WHERE “Open” = ‘Y’
) AS A 
WHERE RNK = 1

当你在上面的问题中写它时,我在选择列时包含了括号,但通常不需要。

它所做的是首先过滤打开的orderid,然后将orderid从1到X编号,这些orderid是由PosID

排序的
RNK3

最新更新