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
我有一个运行良好的查询。但是当我尝试将其导出到 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