0

ここに私のデータベースの簡易版があります

ID#
Date (Datetime)
Customer (Varchar)
Item (Varchar)

各顧客は複数のアイテムを持つことができ、すべての行に一意の日時スタンプがあります。

各顧客に属する添付された各アイテムの最新のエントリを表示するクエリを作成しようとしています

それが意味をなさない場合、これはより良いかもしれません:

たとえばデータ。

1   1/1/12 00:00:00   Cust1  Item1 
2   2/1/12 00:00:00   Cust1  Item1 
3   3/1/12 00:00:00   Cust1  Item2 
4   2/1/12 00:00:00   Cust2  Item1 
5   3/1/12 00:00:00   Cust2  Item1 
6   4/1/12 00:00:00   Cust2  Item1 

表示する必要があります

2   2/1/12 00:00:00   Cust1  Item1 
3   3/1/12 00:00:00   Cust1  Item2 
6   4/1/12 00:00:00   Cust2  Item1 

助けてくれてありがとう

4

1 に答える 1

1

できるよ:

SELECT a.*
FROM   tbl a
JOIN   (
       SELECT MAX(ID) AS ID FROM tbl GROUP BY Customer, Item
       ) b ON a.ID = b.ID

これはID顧客ごとに最高値を取得します (自動インクリメントされた値であり、最高値も最新であると仮定します)。これは一意であるため、同じテーブルをID列に結合するだけで、顧客ごとに最新の行のみが返されます。

于 2012-08-01T12:14:13.780 に答える