我正在尝试使用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
答案 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多。向那些花时间做出回应的人表示歉意。