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