2013-02-20 108 views
0

我有兩個SELECT語句給出值「TotalSales」和「VendorPay_Com」。我希望能夠從一個MySQL語句中的TotalSales中減去VendorPay_Com以獲得值「Outstanding_Funds」,但我還沒有找到一個可靠的方法來做到這一點。MySQL SELECT Query - 減去一個SUM()值與其他兩個SUM()值的總和

這些是我的兩個語句:

查詢1:

SELECT SUM(Price) AS TotalSales 
FROM PROPERTY 
WHERE Status = 'Sold'; 

查詢2:

SELECT SUM(AC.Amount) AS VendorPay_Comm 
FROM (
SELECT Amount FROM lawyer_pays_vendor 
UNION ALL 
SELECT CommissionEarned AS `Amount` FROM COMMISSION AS C WHERE C.`status` = 'Paid') AS AC 

在這個問題上的任何幫助,將不勝感激:)

回答

9

如下你可以這樣做:

select (select ...) - (select ...) 

在您的例子,簡單地說:

select 

(
SELECT SUM(Price) AS TotalSales 
FROM PROPERTY 
WHERE Status = 'Sold' 
) 
- 
(
SELECT SUM(AC.Amount) AS VendorPay_Comm 
FROM (
SELECT Amount FROM lawyer_pays_vendor 
UNION ALL 
SELECT CommissionEarned AS `Amount` FROM COMMISSION AS C WHERE C.`status` = 'Paid') AS AC 
) AS Outstanding_Funds 
+0

非常感謝您Grisha!完美工作:) – Steve 2013-02-21 01:05:03

+0

不客氣:) – 2013-02-21 04:36:52

+0

謝謝兄弟!你節省了我的時間++ – Ivan 2016-11-08 22:15:39

1

嘗試

SELECT TotalSales-VendorPay_Comm AS Outstanding_Funds 
    FROM 
(SELECT SUM(Price) AS TotalSales 
    FROM PROPERTY 
    WHERE Status = 'Sold') t1, 
(SELECT SUM(Amount) AS VendorPay_Comm 
    FROM (SELECT Amount FROM lawyer_pays_vendor 
      UNION ALL 
     SELECT CommissionEarned AS Amount 
      FROM COMMISSION 
      WHERE Status = 'Paid') t0) t2 

這裏是sqlfiddle