MS Access- 循环引用在导出时导致别名 'Description'

MS Access- circular reference caused be alias 'Description' when exporting

我有一个运行良好的查询。但是当我尝试将其导出到 csv 时:

circular reference caused by alias 'Description'in query selection's SELECT list

循环引用在哪里?为什么它只在我导出输出时发生?

 SELECT date, Time, User, Description, acct, first(tbl1) AS KYC
FROM (SELECT 
date, 
Time,
User,
First(Description) As Description,
Null as acct

FROM Tbl2
WHERE Tbl2.description not like "%New%" and Tbl2.description not like "%Out%"
GROUP BY date, Time, User, acct

UNION

SELECT date,
Time,
User,
Description,
acct

FROM Tbl2

WHERE
Tbl2.Description like "%New%" or Tbl2.Description like "%Old%"
GROUP BY date,Time,User,Description, acct)  AS KYCclean 
LEFT JOIN chg_type ON [KYCclean].[description] like [chg_type].[Matchstring]
    GROUP BY date, Time, User, Description, acct;

试试另一个别名:

First(Description) As SomeDescription,

这是一个简单的错误:

在 Access 中,您不能执行 First(Description) As Description 之类的操作,因为它们会导致循环引用。重命名该字段,它将正常工作:

SELECT date, Time, User, FirstOfDescription, acct, first(tbl1) AS KYC
FROM (SELECT 
date, 
Time,
User,
First(Description) As FirstOfDescription,
Null as acct

FROM Tbl2
WHERE Tbl2.description not like "%New%" and Tbl2.description not like "%Out%"
GROUP BY date, Time, User, acct

UNION

SELECT date,
Time,
User,
Description,
acct

FROM Tbl2

WHERE
Tbl2.Description like "%New%" or Tbl2.Description like "%Old%"
GROUP BY date,Time,User,Description, acct)  AS KYCclean 
LEFT JOIN chg_type ON [KYCclean].[FirstOfDescription] like [chg_type].[Matchstring]
GROUP BY date, Time, User, FirstOfDescription, acct;

这个错误应该在多种情况下出现,不仅仅是在输出的时候。

请注意,您的问题还有许多其他奇怪之处,例如您的联接中的 Like 没有括号,并且使用 % 作为通配符。

您可以像您希望的那样使用列名作为别名,要求是完全限定聚合函数中的列。

First(Tbl2.Description) As Description

请注意,First() 聚合函数可能会导致不一致的结果,因为它依赖于 table 顺序 - 在您的情况下,这不是由源中的特定顺序子句确定的。

这里有更多内容https://msdn.microsoft.com/en-us/library/bb177902(v=office.12).aspx