我有一个问题,我需要从 Access 中的一个表中选择三列来填充另一个表,但它只需要在一个列上是不同的。我按如下方式尝试了 GROUP BY
SELECT [Cust Reference], CustType, County
FROM CustInfo
WHERE [Cust Reference] LIKE "%20%"
AND [Cust Reference] LIKE "P1%"
AND CustType NOT LIKE "%expired%"
AND CustType <> ""
GROUP [Cust Reference], CustType, County;
但是当我在上面使用 SELECT INTO 并检查重复项时,会有一些。
我看过这篇文章 -在一列上选择 DISTINCT
但是该CustInfo表没有 ID 列,并且实际上不可能LIKE像上面的帖子所述那样做。我尝试了以下方法,它给了我我认为正确的输出和一列的计数
SELECT DISTINCT t1.[Cust Reference]
FROM CustInfo AS t1
WHERE t1.[Cust Reference] LIKE "%20%"
AND t1.[Cust Reference] LIKE "C1%"
AND t1.CustType NOT LIKE "%expired%"
AND t1.CustType <> ""
但是,当我尝试将其扩展为包括以下三列时,它不起作用。我复制CustInfo到CustInfo_Temp工作加入。在此查询中需要更正什么以提取 [Cust Reference} 上仅具有 DISTINCT 的三列?
SELECT t2.[Cust Reference], CustType, County
FROM
(SELECT DISTINCT t1.[Cust Reference]
FROM CustInfo AS t1
WHERE t1.[Cust Reference] LIKE "%20%"
AND t1.[Cust Reference] LIKE "P1%"
AND t1.CustType NOT LIKE "%expired%"
AND t1.CustType <> "") AS t2
JOIN CustInfo_Temp ON t1.[Cust Reference] = t2.[Cust Reference]