认计算列组我有以下SQL:火鸟不能by子句
select
inv.salesman_id,
(select salesman_goals.goal from salesman_goals
where salesman_goals.salesman_id = inv.salesman_id
and salesman_goals.group_id = g.group_id
and salesman_goals.subgroup_id = sg.subgroup_id
and salesman_goals.variation_id = v.variation_id)
as goal,
sum(i.quantity) as qnt
from invoiceitem i
inner join invoice inv on inv.invoice_id = i.invoice_id
inner join product p on p.product_id = i.product_id
left join groups g on g.group_id = p.group_id
left join subgroup sg on sg.group_id = g.group_id and sg.subgroup_id = p.subgroup_id
left join variation v on v.group_id = sg.group_id and v.subgroup_id = sg.subgroup_id and v.variation_id = p.variation_id
group by
1,2
返回三列,第一个是销售员ID,二是选择让销售子数量目标,第三个是实际销售数量。 即使按第一列和第二列分组,firebird在执行查询时会抛出一个错误:
Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).
这是什么原因?
http://www.firebirdsql.org/refdocs/langrefupd21-select.html 并参考“子集在聚合函数中” –
@haytem你的意思是“在子查询中聚合函数和GROUP BY项”? – philipxy