2010-03-17 127 views
0

我有一個關於Access.If問題,例如我有以下數據表:如何獲取列中每個不同值的唯一一行?

NAME   | ADDRESS 
    John Taylor | 33 Dundas Ave. 
    John Taylor | 55 Shane Ave. 
    John Taylor | 786 Edward St. 
    Ted Charles | 785 Bloor St. 
    Ted Charles | 90 New York Ave. 

我想獲得一個記錄每個人無論address.For例子:

NAME  | ADDRESS 
    John Taylor | 33 Dundas Ave. 
    Ted Charles | 90 New York Ave. 

這可以通過查詢來完成嗎? 我嘗試過使用DISTINCT,但是當我選擇兩列時,組合是獨一無二的,所以我得到所有的行。

謝謝!

回答

4

如果你不在乎要顯示的地址,然後下面應該工作:

SELECT NAME, 
     MIN(ADDRESS) AS ADDRESS 
FROM THETABLE 
GROUP BY NAME 
+0

謝謝範!有用。 – Chavdar 2010-03-17 21:54:11

+0

太好了,很高興幫忙。 – van 2010-03-17 22:16:50

0

隨着一點點額外的,使用MIN將按照字母順序返回第一個地址。 Access有兩個類似的集合函數稱爲FIRST和LAST,它將根據表的排序順序返回第一個或最後一個地址。

例如,如果你拿

ID | NAME |地址
1 |約翰泰勒| 55 Shane Ave.
2 |約翰泰勒| 786 Edward St.
3 |約翰泰勒|登打士大道33號
4 |泰德查爾斯| 785 Bloor St.
5 |泰德查爾斯| 90紐約大道。

SELECT NAME, 
    MIN(ADDRESS) AS ADDRESS 
FROM THETABLE 
GROUP BY NAME 

將返回

約翰·泰勒|登打士大道33號
Ted Charles | 785布魯爾街

SELECT NAME, 
    FIRST(ADDRESS) AS ADDRESS 
FROM THETABLE 
GROUP BY NAME 

會給你

約翰·泰勒| 55 Shane Ave.
Ted Charles |紐約大街785號

心連心

+0

從技術上講,它是具有First/Last功能的Jet/ACE。您可以通過在您選擇的字段上設置排序順序來獲得First/Last的可預測結果。在您提供的發明數據中,ORDER BY在ID上,與地址字段的內容相比,該ID將是半隨機的。 – 2010-03-18 21:51:34

相關問題