3

トランザクションのデータをクエリしようとしています。最新の日付のトランザクションに対して複数の列を取得したいと考えています。PONumber、ベンダー、各アイテムの価格、最後に購入した時間。例えば:

データ:

PONumber    Item    Vendor    Price    DateOrdered
1           ABC     Wal-Mart  1.00     10/29/12
2           ABC     BestBuy   1.25     10/20/12
3           XYZ     Wal-Mart  2.00     10/30/12
4           XYZ     HomeDepot 2.50     9/14/12

目的の結果セット:

PONumber    Item    Vendor    Price    DateOrdered
1           ABC     Wal-Mart  1.00     10/29/12
3           XYZ     Wal-Mart  2.00     10/30/12

DateOrdered で max 関数を使用しようとしていますが、ベンダーを含めると、ベンダーとアイテムごとに最後の購入を取得します (行が多すぎます)。アイテムごとに 1 つのレコードが必要です。達成する方法についてのアイデアはありますか?Microsoft Access 2007 を ODBC から Oracle テーブルに使用する。前もって感謝します。

4

1 に答える 1

3

どうですか:

SELECT 
   tran.PONumber, 
   tran.Item, 
   tran.Vendor, 
   tran.Price, 
   tran.DateOrdered
FROM tran
WHERE tran.DateOrdered = (
   SELECT Max(DateOrdered) 
   FROM tran t 
   WHERE t.item=tran.item)

tranはあなたのテーブルです。

于 2012-10-30T13:59:00.333 に答える