用DISTINCT查询返回重复结果

时间:2019-05-15 23:40:43

标签: sql vba ms-word

我正在尝试使用VBA在Word中创建标签合并,以通过ODBC提取数据。但是,尽管使用DISTINCT,但我得到的是重复的值(因此重复的标签)。所选的所有字段都必须是唯一的,我不是要在单个字段上进行过滤。我对SQL非常了解,我在这里错过了什么?如果我在Word中打开收件人列表,它会告诉我重复项。

SELECT DISTINCT o.NamFullName, e.LocHolderName, e.EADUnitTitle 
FROM ecatalog.csv AS e 
INNER JOIN EADOrigi.csv AS o ON e.ecatalogue_key = o.ecatalogue_key

2 个答案:

答案 0 :(得分:0)

您可能返回了重复的行。您也许可以使用CTE。示例:

;WITH catCTE([ecatalogue_key], 
            [LocHolderName], 
            [EADUnitTitle])
     AS (SELECT DISTINCT 
                [Ecatalogue_key], 
                [LOCHOLDERNAME], 
                [EADUNITTITLE]
         FROM   [ecatalog].[csv]),
     eadCTE([NamFullName])
     AS (SELECT DISTINCT 
                [ecatalogue_key], 
                [namfullname]
         FROM   [EADOrigi].[csv])
     SELECT [o].[NamFullName], 
            [e].[LocHolderName], 
            [e].[EADUnitTitle]
     FROM   [catCTE] AS [e]
            JOIN [eadCTE] AS [o] ON [e].[ecatalogue_key] = [o].[ecatalogue_key];

答案 1 :(得分:0)

奇怪的是,这似乎已经解决了,并且正好返回了应有的状态。我怀疑它与Word和VBA的关系要比SQL多。向那些花时间做出回应的人表示歉意。