2011-08-17 63 views
0

對不起,如果這已經得到解答。我環顧四周,但還沒有找到真正有效的東西。Microsoft Access - SQL表中不同的引用

基本上,我想從接入

所以我寫了下面的代碼獲得基於不同在一個表中的列中的所有數據:

Set rs = CurrentDb.OpenRecordset("select * from table t where t.refnum IN (select distinct refnum from table)") 

這是有道理的,但SQL我無法在Access中獲得所需的結果。

+0

我在訪問SQL語句沒有問題。 – Patrick

回答

2

你內部查詢是不同的。但是,然後你的外部查詢不區分它:-)。

*意味着你要在表中的每個領域。如果您在該級別有重複記錄,則表中沒有唯一的記錄ID,該可能是是一個糟糕的設計。

反正 - 一個明顯的回報是這樣的:

Set rs = CurrentDb.OpenRecordset("SELECT min(refnum), [field1], [field2] FROM table GROUP BY [field1], [Field2]) 

就像你擁有了它你不需要內部/外部查詢 - 只是這一點。

而且 - 只是標準的建議 - 你可以做的更好,以列表中的字段,而不是使用*。

編輯
我添加了分組到上面的SQL。此外,您現在需要列出字段 - 不能使用*。此外,請記住,您彙總的字段(例如,當您使用min()時,將不會在您的GROUP BY中列出)。

+0

我得到療法錯誤「無法組與‘*’選定字段。 我將列出字段,但有超過100 – jamesC

+0

另外,不知道它的問題,但它是在第5列名單 – jamesC

+0

對不起 - 我忘了GROUP BY - 將ammend我的回答 – Chains

0

集RS = CurrentDb.OpenRecordset( 「選擇表t其中t.refnum IN(選擇由引用句柄從表組引用句柄)*」)

+0

我嘗試過這種方法,並不是需要什麼。往上看。 感謝您的幫助 – jamesC