1

2 つのテーブルを持つリンクされた MS-SQL データベースで MS-Access 2007 を使用しています。

1 つのテーブルは在庫の詳細で、もう 1 つは在庫のトラックで、特定の日付の各在庫の状態を (ID で) 追跡します。

各インベントリ アイテムの最新のステータスを取得できるように、最大​​ Date 値でTrackIDfor eachを取得する必要があります。InvenotryID

Inventory table: ID, Details, etc.

Track table: ID, Inventory (ID), TDate, Status, Branch.

トラック テーブルの例:

   ID | Inv. | TDate | Status   
   332|    4 | 02/03 | free   
   342|    6 | 02/12 | working   
   346|    4 | 02/09 | working   
   347|    7 | 02/11 | repairs   
   349|    5 | 02/05 | repairs   
   352|    6 | 02/13 | free   
   355|    5 | 01/28 | working   
   356|    7 | 02/14 | free

クエリは次を取得する必要があります。

   TrackID | Inv. | TDate | Status   
   346     | 4    | 02/09 | working   
   355     | 6    | 02/13 | free   
   356     | 7    | 02/14 | free   
   349     | 5    | 02/05 | repairs

注:TrackID非線形ステータス登録のため、必ずしもフィールドの最大値ではありません。

SQL が不足しているため、そのアイデアを具体化できるクエリを作成できませんでした。

4

1 に答える 1

0

多分:

SELECT test.ID, test.Inv, test.TDate, test.Status
FROM test INNER JOIN 
   (SELECT test.Inv, Max(test.TDate) AS MaxOfTDate
    FROM test
    GROUP BY test.Inv)  AS q 
ON (test.TDate = q.MaxOfTDate) AND (test.Inv = q.Inv)
GROUP BY test.ID, test.Inv, test.TDate, test.Status;

test はテーブルの名前です。

于 2014-03-09T14:04:38.897 に答える