2013-02-20 90 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