MS Access-循环引用在导出时导致别名为“描述”

时间:2018-02-13 15:55:18

标签: sql ms-access circular-reference

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

4 个答案:

答案 0 :(得分:0)

尝试另一个别名:

First(Description) As SomeDescription,

答案 1 :(得分:0)

这是一个简单的错误:

在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没有括号,并使用%作为通配符。

答案 2 :(得分:0)

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

First(Tbl2.Description) As Description

答案 3 :(得分:0)

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

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

相关问题