Query

選擇具有額外資訊的 DISTINCT 記錄

  • June 27, 2012

我有一個包含客戶姓名和地址的 MS Access 數據庫。我想發送一封郵件,但每個地址只能發送一封郵件。因此,如果該地址有 3 個不同的客戶,我只想要一排。這是我到目前為止的基本查詢:

Group   Fname   Lname   Address

所以我的第一次嘗試是:

SELECT DISTINCT Customers.[Address 1]
FROM Customers

這可以按我的意願工作,並且只返回唯一的地址。但是我還需要 group、fname 和 lname 欄位。當我添加這些時,我失去了 DISTINCT 功能,因為同一家庭中的客戶通常會有不同的 Lname 和分組。

什麼是選擇我需要的數據的最佳方式,但仍然使用 DISTINCT

$$ Address 1 $$場地。

SELECT c.*
FROM 
     Customers AS c
  INNER JOIN
     ( SELECT [Address 1], MIN([Order Date]) AS min_od
       FROM Customers
       GROUP BY [Address 1]
     ) AS grp
        ON  grp.[Address 1] = c.[Address 1]
        AND grp.min_od = c.[Order Date] ;

如果您有兩行[Order Date]的地址最小值相同,這可能仍然會給您兩行地址。

引用自:https://dba.stackexchange.com/questions/20015