2013-02-20 2 views
0

У меня есть два оператора SELECT, которые дают значения «TotalSales» и «VendorPay_Com». Я хочу, чтобы вычесть VendorPay_Com из TotalSales в одном выражении MySQL, чтобы получить значение «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

Большое спасибо Грише! Совершенно совершено :) – Steve

+0

Добро пожаловать :) –

+0

Спасибо, брат! Вы сохраняете мое время ++ – Ivan

1

Try

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