我有一个查询,其中的字段如下:
UniqueID | RefNum | FirstName | Surname | Aim |.....
UniqueID-是唯一字段(无重复)
RefNum-包含重复项
我要做的是创建一个新查询(基于以上内容或对此进行修改),以仅提取具有唯一RefNum的记录(从RefNum字段中删除重复项)
我这样做的方法是在“查询设计”视图中选择“分组依据” RefNum,然后为其余字段选择“第一”。它实现了我所需要的。
问题是,如果我切换到数据表视图(然后将其导出到excel以发送出去),则字段名称为“ FirstOfUniqueID”,“ FirstofFirstName”,“ FirstOfSurname”等。是否有保留方法原始字段名称(不以“ FirstOf”作为前缀)还是有另一种实现方式?
答案 0 :(得分:1)
查询设计器会基于聚合函数自动为字段表达式分配别名。因此,如果您从查询的设计视图切换到 SQL视图,您将在SELECT
字段列表中看到类似的内容... >
First(FirstName) AS FirstOfFirstName
您可以将别名更改为其他名称,并且具有很大的灵活性。但是,至少在某些情况下,当您尝试重新使用基本字段名称作为别名时,Access会抱怨“循环引用”。我不知道是否会在这里发生,但是您可以这样尝试...
First(FirstName) AS [FirstName]
无论这是否满足您的要求,我建议您考虑使用另一种查询策略,该策略几乎完全避免了字段名别名问题。首先测试此查询,以确认它返回合适的RefNum / UniqueID对。如果您的基本查询名为 Query1 ...
SELECT q1.RefNum, Min(q1.UniqueID) AS MinOfUniqueID
FROM Query1 AS q1
GROUP BY q1.RefNum
假设返回的行正确,请将其重新连接到基础查询以仅选择与...匹配的基础查询行。
SELECT q.*
FROM
Query1 AS q
INNER JOIN
(
SELECT q1.RefNum, Min(q1.UniqueID) AS MinOfUniqueID
FROM Query1 AS q1
GROUP BY q1.RefNum
) AS sub
ON q.UniqueID = sub.MinOfUniqueID
答案 1 :(得分:0)