0
我有这个疑问,它似乎工作的大部分时间,但我仍然得到它空值,当我知道它应该返回的东西,SQL查询工作有时
我开始select
,那么这个
(select sum(total) from orders
where customer = 9
and iscredit = 1
and isdeleted = false and not id = 1560)
代码的这种安宁使我获得了客户9的订单总量,而不是当前订单,就像以前的订单总额一样...也注意到iscredit = 1意味着这些是信用订单。
接下来,我要添加这个查询
(select sum(total) from orders
where customer = 9
and iscredit = 0
and isdeleted = false and not id = 1560)
做同样的事情,但iscredit为0,因此订单是没有学分。
接下来我想什么减去已支付与此查询
- (select ifnull(sum(p.amount), 0) from payment p
inner join orders o
on p.order = o.id
where o.customer = 9) as previous
因此,所有这一起我什么查询看起来像....
select
(
select sum(total)
from orders
where customer = 9 and iscredit = 1 and isdeleted = false and not id = 1560
)
+
(
select sum(total)
from orders
where customer = 9 and iscredit = 0 and isdeleted = false and not id = 1560
)
-
(
select ifnull(sum(p.amount), 0)
from payment p
inner join orders o
on p.order = o.id
where o.customer = 9
) as previous
有没有更好的方式来写这个?
任何提示将不胜感激。
谢谢
谢谢大卫,它的工作原理! – user979331 2012-04-25 15:16:06