オフサイトで 3 人の別々のユーザーが使用する Access データベースがあります。このオフサイトの場所にはネットワーク リンクがありません (それもできません)。
3 つの同一のデータベースがあるため、3 つの同一のテーブルがあります。各ユーザーは、同じ主キーを使用して情報を入力します。この「食品評価」の例では:
Item | Color | Timestamp
PERSON 1 (first database)
Carrot | Orange | 2012-12-21 13:00:00
Watermelon | Red | 2012-12-21 19:00:00 <--
Blueberry | Blue | 2012-12-21 17:00:00 <--
PERSON 2 (second database)
Carrot | Yellow | 2012-12-21 15:00:00 <--
Apple | Green | 2012-12-21 15:00:00 <--
PERSON 3 (third database)
Watermelon | Green | 2012-12-21 11:00:00
Apple | Red | 2012-12-21 14:00:00
Orange | Orange | 2012-12-21 15:00:00 <--
テーブルを出力する必要があります:
Blueberry | Blue | 2012-12-21 17:00:00
Watermelon | Red | 2012-12-21 19:00:00
Carrot | Yellow | 2012-12-21 15:00:00
Apple | Green | 2012-12-21 15:00:00
Orange | Orange | 2012-12-21 15:00:00
したがって、タイムスタンプに基づいて、重複の 1 つだけを選択するだけでなく、重複していないものもすべて選択する必要があります (アイテムはプライマリの一意のキーです)。私は一生、これのSQLを取得することはできません..
SELECT Item, Color, MAX(timestamp)
FROM (SELECT ... FROM first
UNION SELECT ... FROM second
UNION SELECT ... FROM third)
GROUP BY Item, Color
ただし、MAX 関数を取得するには Color でグループ化する必要があるため、依然としてインデックス違反が発生します。
では、どうすればこの出力を取得できますか?