我目前正在做一些sql魔术,想更新我的公司erp计划的股票。但是,如果我尝试运行以下查询,就会得到标题中提到的错误。
update llx_product lp
set stock = (select sum(ps.reel)
from llx_product_stock as ps, llx_entrepot as w
where w.entity IN (1)
and w.rowid = ps.fk_entrepot
and ps.fk_product = lp.rowid
group by ps.rowid)
如果与产品的rowid一起使用,子查询本身只返回一行。
select sum(ps.reel)
from llx_product_stock as ps, llx_entrepot as w
where w.entity in (1)
and w.rowid = ps.fk_entrepot
and ps.fk_product = 7372
group by ps.rowid
任何帮助都将不胜感激
2条答案
按热度按时间whhtz7ly1#
我建议将问题写为:
没有
group by
不能返回多行。不清楚您的版本是如何返回多行的,因为group by
也有一个平等的比较。也许有一些类型转换的问题在起作用。但无论如何,没有
group by
,无法获取当前获取的错误。wztqucjr2#
对于任何想知道我的问题的解决方案是一个非常简单的问题的人来说,戈登指出了正确的方向,我使它比它应该的更难。