“FIELDNAME”不是聚合函数的一部分-Access SQL
我试图从我的数据库中选择所有[Operation],并获取每个[Operation]的数据。下面是我尝试使用的SQL代码 出现以下错误: 您试图执行的查询未将指定表达式“op”作为聚合函数的一部分 我的SQL语句:“FIELDNAME”不是聚合函数的一部分-Access SQL,sql,ms-access,Sql,Ms Access,我试图从我的数据库中选择所有[Operation],并获取每个[Operation]的数据。下面是我尝试使用的SQL代码 出现以下错误: 您试图执行的查询未将指定表达式“op”作为聚合函数的一部分 我的SQL语句: SELECT [op] as [Operation], Sum(count) as [Number of Breakdowns], Sum(td) as [Sum of Time Down] FROM ( SELECT [Operation] as op, Count(*) as
SELECT [op] as [Operation], Sum(count) as [Number of Breakdowns], Sum(td) as [Sum of Time Down]
FROM
(
SELECT [Operation] as op, Count(*) as count, Sum([Time Down]) as td
FROM tblDailyDowntimeAssy
WHERE [Type of Maintenance] = 'Breakdown'
UNION ALL
SELECT [Operation] as op, Count(*) as count, Sum([Time Down]) as td
FROM tblDailyDowntimeMach
WHERE [Type of Maintenance] = 'Breakdown'
);
注:
如果我尝试只使用[Operation]字段而不将其重命名为op,则仍然会发生错误,但只是将“op”更改为“Operation”
SELECT [Operation], Sum(count) as [Number of Breakdowns], Sum(td) as [Sum of Time Down]
FROM
(
SELECT [Operation], Count(*) as count, Sum([Time Down]) as td
FROM tblDailyDowntimeAssy
WHERE [Type of Maintenance] = 'Breakdown'
group by [Operation]
UNION ALL
SELECT [Operation], Count(*) as count, Sum([Time Down]) as td
FROM tblDailyDowntimeMach
WHERE [Type of Maintenance] = 'Breakdown'
group by [Operation]
)
group by Operation;
使用聚合函数时,需要在查询中添加GROUP BY子句。需要在查询中添加GROUP BY子句
select ..... from tbl_name
group by ....
然后将该字段添加到错误中提到的group by子句中编辑得好,我正要发布你需要添加该字段才能使其正确,哈哈。非常感谢,这节省了我很多时间。为什么我需要添加group by才能正常工作?您需要group by,因为您正在执行一个需要多行的聚合查询,每个操作一个。@GordonLinoff如果我理解正确的话-我需要group by子句,因为我正在搜索多个聚合查询,查询需要知道它通过什么将数据组合在一起。在本例中,它结合了我的[Operation]字段周围的数据。