Reputation: 669
I would like to know how can I add up the result of my subqueries within a table. For example, I want to add up the following two queries in one statement.
SELECT SUM(A) - (SELECT SUM(B) FROM MyTable WHERE C<A))
FROM MyTable WHERE B>C;
SELECT SUM(B) - (SELECT SUM(C) FROM MyTable WHERE D<F))
FROM MyTable WHERE B=C;
Upvotes: 1
Views: 64
Reputation: 34774
You can literally just add them together:
SELECT (SELECT SUM(A) - (SELECT SUM(B) FROM MyTable WHERE C<A))
FROM MyTable WHERE B>C)
+
(SELECT SUM(B) - (SELECT SUM(C) FROM MyTable WHERE D<F))
FROM MyTable WHERE B=C)
Same as:
SELECT 5 + 3
You could also probably use some CASE statements to do this without the subqueries, or to make it cleaner at the least, something like:
SELECT SUM(CASE WHEN B > C THEN A ELSE 0 END) - SUM(CASE WHEN C < A THEN B ELSE 0 END)
+
SUM(CASE WHEN B = C THEN B ELSE 0 END) - SUM(CASE WHEN D < F THEN C ELSE 0 END)
FROM MyTable
Upvotes: 3