0

よくわからないという簡単な質問があります。最新のコメントのみを表示して、エンド ユーザー アイテム (ほんの一例) を一覧表示しようとしています。

ID  Name    EventDate     Type
1   PC      12/12/2012    End User Items 
1   PC      11/12/2012    End User Items 
1   PC      10/11/2012    End User Items 
2   Mobile  12/12/2012    End User Items 
2   Mobile  11/01/2012    End User Items 
2   Mobile  12/12/2011    End User Items 
3   Server  12/12/2013    Server

だから私はこのようなことを試してみます:

select * from systems where type = "End User Items" group by ID

しかし、結果にはまだ最新の日付が表示されません。どんな助けでも大歓迎です!

4

3 に答える 3

0

MAX次のように日付を取得しようとしましたか?

SELECT  Name,
    MAX(EventDate),
    Type
  FROM  systems
  WHERE type = 'End User Items'
  GROUP BY Name, Type
于 2013-04-02T22:08:54.750 に答える
0

サブクエリを使用して ID と MAX 日付を取得し、ID と MAX 日付を使用してシステム テーブルに結合できます。

SELECT s2.Name, s.EventDate
FROM system s2 
INNER JOIN (SELECT ID, MAX(EventDate) EventDate
            FROM systems
            WHERE type = 'End User Items'
            GROUP BY ID) AS s on s2.ID = s.ID AND s2.EventDate = s.EventDate
于 2013-04-02T22:13:29.680 に答える
0

集計せずに表示する列を GROUP BY フィールドとして定義します。それらのフィールドと計算された集計関数の列 (例: max()、sum()、count() ) を選択します。

SELECT ID, Name, MAX(EventDate) as LastDate
  FROM  systems
  WHERE type = 'End User Items'
  GROUP BY ID, Name

おそらくIDと名前を見たいでしょう。必要な Type は 1 つだけなので、ここでは Type は不要です。グループ内の max() 日付を取得したい。返されるすべてのフィールドは、集計関数または GROUP BY 列のいずれかである必要があります。

于 2013-04-02T23:40:57.017 に答える