我有一個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
因此,基於時間戳,我需要選擇只重複之一,但也有所有的非重複項(項目是主鍵,唯一鍵)。我不能爲我的生命得到的SQL爲這個.. 使用
SELECT Item, Color, MAX(timestamp)
FROM (SELECT ... FROM first
UNION SELECT ... FROM second
UNION SELECT ... FROM third)
GROUP BY Item, Color
但由於它必須在色組獲得MAX功能,它仍然會創建索引的違規行爲。
那麼..我怎麼得到這個輸出?
有趣的..但如果罐區的號碼,然後增加你會做什麼? – bonCodigo
我正在使用一個VBA腳本,它動態地執行了很多事情;例如,實際上大約有20桌這樣做;我可以遍歷它們,使用Union查詢連接數據庫(如果需要,可以將更多的Unions循環到SQL中)。到目前爲止,這並不理想,但是由於客戶端的一堆需求,這就是它需要更新的方式。我只是沒有足夠的熟練用SQL來解決這個問題。最初我們剛剛告訴用戶「確保你不重複其他用戶」,但用戶並不總是在傾聽。 – StuckAtWork
您或您想以哪種方式決定哪些重複數據是獲勝的數據?它是最新的時間戳嗎? – Nico