3

結果(OutstandingFunds)を取得するために、SUM()で生成した2つの値を2つのSELECTクエリから取得し、これらの値を差し引いた値を取得できるようにしたいと考えています。

これらは私の2つのSELECTクエリです。

ステートメント(1):

SELECT SUM(Cf.Amount) AS ClearedFunds
FROM (
SELECT Amount FROM PAYMENT1 WHERE `Status` = "Cleared"
UNION ALL
SELECT Amount FROM PAYMENT2 WHERE `Status` = "Cleared"
UNION ALL
SELECT Amount FROM PAYMENT3 WHERE `Status` = "Cleared") AS Cf;

ステートメント(2):

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

お時間をいただきありがとうございます

4

4 に答える 4

5

総売上高と清算された資金の個別の小計を表示する必要がない場合は、次のように行うことができます。

SELECT SUM(Total.`Price`) AS ClearedFunds
FROM (
    SELECT `Price` FROM PROPERTY WHERE `Status` = 'Sold'
    UNION ALL
    SELECT (`Amount` * -1) AS `Price` FROM PAYMENT1 WHERE `Status` = 'Cleared'
    UNION ALL
    SELECT (`Amount` * -1) AS `Price` FROM PAYMENT2 WHERE `Status` = 'Cleared'
    UNION ALL
    SELECT (`Amount` * -1) AS `Price` FROM PAYMENT3 WHERE `Status` = 'Cleared'
) AS Total;

ここでは、総売上高から清算された資金を差し引くことを想定しています。

于 2013-02-13T00:43:26.787 に答える
1

あなたはほとんどそこにいました...これが機能していSQLます:

SELECT (SELECT SUM(Cf.Amount) AS ClearedFunds
FROM (
SELECT Amount FROM PAYMENT1 WHERE `Status` = "Cleared"
UNION ALL
SELECT Amount FROM PAYMENT2 WHERE `Status` = "Cleared"
UNION ALL
SELECT Amount FROM PAYMENT3 WHERE `Status` = "Cleared") as Cf)

- (SELECT SUM(Price) AS TotalSales
FROM PROPERTY
WHERE Status = "Sold") as Result;

テストデータを操作できるようにするためのSQLフィドルは次のとおりです。http: //sqlfiddle.com/#! 2/18677/11

于 2013-02-13T01:07:35.497 に答える
0

あなたの場合、を使用することができSELECT ... INTO ...ます:

SELECT SUM(Cf.Amount) AS ClearedFunds
FROM (
SELECT Amount FROM PAYMENT1 WHERE `Status` = "Cleared"
UNION ALL
SELECT Amount FROM PAYMENT2 WHERE `Status` = "Cleared"
UNION ALL
SELECT Amount FROM PAYMENT3 WHERE `Status` = "Cleared") INTO @cf;

SELECT SUM(Price) AS TotalSales
FROM PROPERTY
WHERE Status = “Sold” INTO @ts;

次に、次のように、それらを減算するか、他のクエリで使用できます。

SELECT @ts - @cf;
于 2013-02-13T00:43:42.933 に答える
0

これをお探しですか?

SELECT C.ClearedFunds - P.TotalSales
FROM (
SELECT SUM(Cf.Amount) AS ClearedFunds
FROM (
SELECT Amount FROM PAYMENT1 WHERE `Status` = "Cleared"
UNION ALL
SELECT Amount FROM PAYMENT2 WHERE `Status` = "Cleared"
UNION ALL
SELECT Amount FROM PAYMENT3 WHERE `Status` = "Cleared") AS Cf) C,
(SELECT SUM(Price) AS TotalSales
FROM PROPERTY
WHERE Status = “Sold”) P  
;
于 2013-02-13T00:45:54.383 に答える