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
mongoTemplate query update (指定查询哪些字段)
pandas使用query函数查询dataframe指定数据列的内容(数值)不包含在特定列表中的数据行(not contain in list)