我想从表中检索利润总额,我使用了以下查询,但它返回了无效的组函数使用错误。我的查询出了什么问题?
我的查询如下,
SELECT SUM(CASE
WHEN (sum(t3.amount) - t2.amount) <= 0
THEN 0 ELSE
ROUND((sum(t3.amount) - t2.amount),2) END) as 'Profit'
FROM `tabPurchase Order` as t1
JOIN`tabPurchase Order Item` as t2 ON t1.name = t2.parent
JOIN `tabSales Order Item` as t3 ON t1.lot_name = t3.lot_no
WHERE t1.docstatus = 1 AND t3.docstatus = 1 GROUP BY t1.lot_name
您不能对选择子句中尚未选择的任何内容进行分组。你唯一拥有的东西"选择";从你的t1表是";利润;其基于case子句。
为了在t1.lot_name上分组,您还必须选择它。希望这能帮你解决问题。