2013-11-27 54 views
0

我收到以下錯誤,當我嘗試運行我的查詢的一部分Access查詢+您的查詢不包括指定表達式「TIMEID」作爲聚合函數

您的查詢不包括指定表達式「 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

的一部分,因爲你有COUNT(FactID)SELECT聲明你需要指定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 
+0

也許我做得不對。 FactID是新表中的自動編號。這是我的理解,我需要使用COUNT(FactID)來做到這一點,但是當我用你給我的查詢運行查詢時,它提示我輸入FactID – user3043313

+0

* @ user3043313 *,我更新了我的答案。注意我只是爲了清理查詢而添加了別名。他們沒有必要。讓我知道它是否有效。 – Linger

+0

它沒有給出任何錯誤,但每次運行時,Access都會鎖定。已經關閉了幾次訪問,並且在我運行時會一直掛着。 – user3043313

相關問題