Access Query + 您的查询不包含指定表达式“TimeID”作为聚合函数的一部分

Posted

技术标签:

【中文标题】Access Query + 您的查询不包含指定表达式“TimeID”作为聚合函数的一部分【英文标题】:Access Query + your query does not include the specified expression 'TimeID' as part of the aggregate function 【发布时间】:2013-11-27 19:58:03 【问题描述】:

我在尝试运行查询时遇到以下错误

您的查询不包含作为聚合函数的一部分的指定表达式“TimeID”

INSERT INTO dwSalesFacts ( FactID, TimeID, CustomerID, EmployeeID, LocationID, ProductID, Quantity, UnitPrice, Discount )
SELECT COUNT(FactID), dwTime.TimeID, Orders.[Customer ID], Orders.[Employee ID], dwLocation.LocationID, [Order Details].[Product ID], [Order Details].Quantity, [Order Details].[Unit Price], [Order Details].Discount
FROM Orders, dwTime, dwLocation, [Order Details];

【问题讨论】:

【参考方案1】:

由于您的SELECT 语句中有COUNT(FactID),因此您需要像这样指定GROUP BY

GROUP BY dwTime.TimeID, Orders.[Customer ID], 
  Orders.[Employee ID], dwLocation.LocationID, 
  [Order Details].[Product ID], [Order Details].Quantity, 
  [Order Details].[Unit Price], [Order Details].Discount

我不知道您是否希望将计数分组,但根据您的选择,它必须是这样。

如果FactID 是一个自动编号字段,那么您甚至不需要指定它。请尝试以下操作:

INSERT INTO dwSalesFacts (TimeID, CustomerID, EmployeeID, LocationID, 
    ProductID, Quantity, UnitPrice, Discount)
SELECT t.TimeID, o.[Customer ID], o.[Employee ID], l.LocationID, 
    od.[Product ID], od.Quantity, od.[Unit Price], od.Discount
FROM Orders AS o, dwTime AS t, dwLocation AS l, [Order Details] AS od

【讨论】:

也许我做得不对。 FactID 是新表中的自动编号。我的理解是我需要使用 COUNT(FactID) 来执行此操作,但是当我使用您给我的内容运行查询时,它会提示我为 FactID 输入一些内容 @user3043313,我更新了我的答案。注意我添加别名只是为了清理查询。它们不是必需的。让我知道它是否有效。 它没有给出任何错误,但每次运行时 Access 都会锁定。已关闭 Access 几次,运行时它一直挂起。 它可能正在工作并且没有真正锁定。您是否尝试过运行 SELECT t.TimeID, o.[Customer ID], o.[Employee ID], l.LocationID, od.[Product ID], od.Quantity, od.[Unit Price], od.Discount FROM Orders AS o, dwTime AS t, dwLocation AS l, [Order Details] AS od 并查看运行需要多长时间?另外,在您返回数据库后,您是否检查了dwSalesFacts 以查看它是否有任何新记录?我猜可能是这样。 使用您拥有的 INSERT 语句,它会抓取在 SELECT 语句的表中找到的每条记录,并将它们添加到 dwSalesFacts 表中。根据可能需要一段时间的记录数量,Access 将在完成时显示为锁定。

以上是关于Access Query + 您的查询不包含指定表达式“TimeID”作为聚合函数的一部分的主要内容,如果未能解决你的问题,请参考以下文章

您的查询不包含表达式“未结金额”作为聚合函数的一部分 - MS Access

MS Access Query-By-Form 问题

mongoTemplate query update (指定查询哪些字段)

pandas使用query函数查询dataframe指定数据列的内容(数值)不包含在特定列表中的数据行(not contain in list)

在union的时候怎么强制指定数据类型

使用 MS Access Union Query 合并 3 个表/查询