2012-09-12 35 views
0

我的表格的重要部分是成員的唯一標識符,日期,主要項目類型標識符以及三種替代項目類型標識符中的任意一種。查找多列的值等於另一列的記錄

我想要做的是找到記錄,其中任何替代項目類型標識符結束在主要項目類型標識符列在晚些時候爲同一個人。下面是一個例子表:

+-------------------------------------------------------+ 
|NAME|DATE |MAIN ITEM|ALT ITEM 1|ALT ITEM 2|ALT ITEM 3| 
+-------------------------------------------------------+ 
|John|9/11/12| 12345 | 99999 | 88888 | 77777 | 
+-------------------------------------------------------+ 
|John|9/12/12| 99999 | 66666 | 55555 | 44444 | 
+-------------------------------------------------------+ 

我需要找到喜歡這裏的第二個比其他的這個人以後的日子和以前這個特定的人的替代品記錄。我所在的桌子有大約1700個記錄,其中約300個是一個人的倍數。

如果解決方案無法通過Access SQL完成,那麼我對VBA很滿意。謝謝。

回答

5

如何:

SELECT u1.NAME, u1.Date, u1.[MAIN ITEM], u2.NAME, u2.Date, u2.ITEM 
FROM (
    SELECT Test.NAME, Test.DATE, Test.[MAIN ITEM] 
    FROM Test) AS u1 
INNER JOIN (
    SELECT Test.NAME, Test.DATE, Test.[ALT ITEM 1] As Item 
    FROM Test 
    UNION ALL 
    SELECT Test.NAME, Test.DATE, Test.[ALT ITEM 2] As Item 
    FROM Test 
    UNION ALL 
    SELECT Test.NAME, Test.DATE, Test.[ALT ITEM 3] As Item 
    FROM Test) AS u2 
ON (u1.NAME = u2.NAME) AND (u1.[MAIN ITEM] = u2.[ITEM]) 
WHERE u1.Date>u2.date 

我呼籲表測試。

+0

輝煌。謝謝! – Tim

相關問題