0

以下のクエリがあります-

 select w1.System_Id, w1.TeamProjectSK, w1.System_State, w1.System_Rev 
 from dbo.DimWorkItem w1
  where w1.System_Id = 29259
  order by w1.TeamProjectSK asc, w1.System_Rev desc

出力は次のようになります-

System_Id    TeamProjectSK  System_State    System_Rev
29259    4            Closed              6
29259    4            Resolved            5
29259    4            Active              4
29259    4            Active              3
29259    4            Active              2
29259    4            Proposed            1

今、私は私の出力が次のようになる必要があります-

System_Id    TeamProjectSK  System_State    System_Rev
29259    4            Closed              6
29259    4            Resolved            5
29259    4            Active              4
29259    4            Proposed            1

つまり、「System_State」でグループ化された「System_Rev」列で最高値を取得したいと考えています。以下のクエリを試しました-

 select w1.System_Id, w1.TeamProjectSK, w1.System_State, w1.System_Rev 
 from dbo.DimWorkItem w1
 inner join 
 (
    select System_State, max(System_Rev) as m 
    from dbo.DimWorkItem group by System_State
 ) w
 on w1.System_State = w.System_State and w1.System_Rev = w.m
 order by w1.System_Id asc, w1.TeamProjectSK asc

しかし、それは私の利益にはなりませんでした。助けてください。

よろしく。

4

2 に答える 2