我有一个简单的查询
select id,
(select sum(totalin) from xorderextra where xorderextra.id = xoi.id) as totalin,
from xorderinfo xoi
group by xoi.id
having (select sum(totalin) from xorderextra where xorderextra.id = xoi.id) > 1000
现在我想知道有没有更好的方法来替换有语句中的 sum 过滤器。这是设置事物的正确方法吗,这是否会损害查询,即。是否必须将数字相加两次?
*新案例 *
select xoi.id,
sum(xex.totalin) as totalin,
sum(xooc.totalout) as totalout,
from xorderinfo xoi
inner join xorderextra xex on xex.id = xoi.id
inner join xorderout xoo on xoo.rid = xoi.id
inner join xorderoutcalc xooc on xooc.obracunid = xoo.obracunid
group by xoi.id
having sum(xex.totalin) > 1000
这返回错误的结果,我该如何解决?