1. ホーム
  2. sql-server

[解決済み] SQL Serverです。MAX(DATE)を持つ行のみをSELECTする。

2022-06-12 02:12:02

質問

私はデータのテーブルを持っています(データベースはMSSQLです)。

ID  OrderNO  PartCode  Quantity DateEntered
417 2144     44917     100      18-08-11
418 7235     11762     5        18-08-11
419 9999     60657     100      18-08-11
420 9999     60657     90       19-08-11

OrderNO、PartCode、Quantityを返すクエリを作りたいのですが、最後に登録されたオーダーに対してのみです。

例のテーブルから、次の情報を取得したいと思います。

 OrderNO  PartCode  Quantity     
 2144     44917     100      
 7235     11762     5        
 9999     60657     90  

9999の注文に対して1行だけ返されたことに注意してください。

ありがとうございます。

どのように解決するのですか?

もし rownumber() over(...) が利用可能であれば ....

select OrderNO,
       PartCode,
       Quantity
from (select OrderNO,
             PartCode,
             Quantity,
             row_number() over(partition by OrderNO order by DateEntered desc) as rn
      from YourTable) as T
where rn = 1