1. ホーム
  2. sql

[解決済み] 最新のレコードを取得するためのSQLクエリを作成する

2022-03-01 16:41:05

質問

私は、プロジェクトチームのためにステータスボードモジュールを作成しています。ステータスボードでは、ユーザーが自分のステータスをインまたはアウトに設定でき、またメモを提供することができます。私は、すべての情報を単一のテーブルに格納することを計画していました...そして、データの例は次のとおりです。

Date               User         Status    Notes
-------------------------------------------------------
1/8/2009 12:00pm   B.Sisko      In        Out to lunch    
1/8/2009 8:00am    B.Sisko      In  
1/7/2009 5:00pm    B.Sisko      In    
1/7/2009 8:00am    B.Sisko      In    
1/7/2009 8:00am    K.Janeway    In   
1/5/2009 8:00am    K.Janeway    In    
1/1/2009 8:00am    J.Picard     Out       Vacation  

私はデータを照会して、各ユーザーの最新の状態を返したいのですが、この場合、私の照会は次の結果を返します。

Date               User         Status    Notes
-------------------------------------------------------  
1/8/2009 12:00pm   B.Sisko      In        Out to lunch    
1/7/2009 8:00am    K.Janeway    In   
1/1/2009 8:00am    J.Picard     Out       Vacation  

私はこれを実現するためにTRANSACT-SQLを把握しようとしている?どのようなヘルプでもかまいませんので、よろしくお願いします。

解決方法は?

で集計する。 <ストライク サブクエリ の派生テーブルを作成し、それに結合します。

 Select Date, User, Status, Notes 
    from [SOMETABLE]
    inner join 
    (
        Select max(Date) as LatestDate, [User]
        from [SOMETABLE]
        Group by User
    ) SubMax 
    on [SOMETABLE].Date = SubMax.LatestDate
    and [SOMETABLE].User = SubMax.User