How to select row with max value when duplicate rows exist in SQL Server

前端 未结 4 2008
盖世英雄少女心
盖世英雄少女心 2021-01-01 01:16

I have table like this

DocumentID        | MasterStepID | StepNumber | RoleID | UserID     | Status
JIEP/TT/07/000174 | Approval1    |          1 |   NULL |         


        
4条回答
  •  温柔的废话
    2021-01-01 01:50

    Try This

    SELECT T1.* FROM WF_Approval T1 
    JOIN
    (SELECT DISTINCT [Status], DocumentID, MAX(StepNumber) as [StepNumber] from WF_Approval 
    GROUP BY DocumentID, [Status])  T2 
    ON T1.DocumentID = T2.DocumentID AND T1.[Status] = T2.[Status]
    AND T1.StepNumber = T2.StepNumber
    ORDER BY StepNumber ASC, Status ASC
    


    OUTPUT:

    JIEP/TT/07/000174   Approval1   1   NULL    0006100022  1
    JIEP/TT/07/000174   Approval1   5   18      0006100022  3
    JIEP/TT/07/000174   Approval1   6   16      0006104115  6
    

提交回复
热议问题