[英]MS-Access - You tried to execute that does not include the specified expression 'Quantity' as part of an aggregate function
[英]Tried to execute a query that does not include the specified expression 'StaffDetails.StaffID' as part of an aggregate function
我有一個名為DGHours的數據網格,我想在下面的SQL中填充它。 但是,我收到了錯誤消息“其他信息:您試圖執行一個查詢,該查詢不包含指定表達式” StaffDetails.StaffID”作為聚合函數的一部分。 我不明白我的SQL有什么問題,有什么幫助嗎? 我希望數據網格通過內部聯接的staffID顯示StaffID,FirstName,LastName和總小時數。 我認為問題與SUM(TimeSheet.Hours)有關 。
Dim SqlQuery As String = "SELECT [StaffDetails.StaffID], [StaffDetails.FirstName], [StaffDetails.LastName], [TimeSheet.StaffID], SUM(TimeSheet.Hours) FROM [StaffDetails] INNER JOIN [TimeSheet] ON [StaffDetails].StaffID = [TimeSheet].StaffID WHERE [TimeSheet].TimeSheetMonth='" & cbMonth.Text & "'"
Dim da As OleDbDataAdapter = New OleDbDataAdapter(SqlQuery, conn)
Dim ds As DataSet = New DataSet
da.Fill(ds, "Hours")
Dim dt As DataTable = ds.Tables("Hours")
With DGHours
.AutoGenerateColumns = True
.DataSource = ds
.DataMember = "Hours"
End With
如果使用方括號,則它們應包括表名稱或列名稱之類的每個單個組件,而不是整個組件:使用例如[StaffDetails].[StaffID]
而不是StaffDetails.StaffID]
。
但是,根據您的情況,您也可以省略語句中的所有方括號。 僅當表或列名中包含空格,逗號等特殊字符,或者將SELECT
或FROM
這樣的SQL關鍵字用作表名時,才需要使用這些字符(無論如何都是不正確的做法)。
此外,如果在某些列上使用諸如Sum
類的聚合函數,則需要對其他列進行GROUP BY
,即對於查詢,您必須附加
GROUP BY StaffDetails.StaffID,
StaffDetails.FirstName,
StaffDetails.LastName,
TimeSheet.StaffID
到查詢末尾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.