sum of two queries
sum of two queries
Is there a way to return the sum of two separate queries as in: select (select sum(price) from items) + (select sum(price) from widgets)) select 3 + 4 works OK but the parser doesn't like sticking a subquery in place of the numbers. Is there another way to do this? kyle@actarg.com
Re: [SQL] sum of two queries
G. Anthony Reina wrote:Kyle Bateman wrote:I explained my problem badly.> Is there a way to return the sum of two separate queries as in:
>
> select (select sum(price) from items) + (select sum(price) from
> widgets))
>
> select 3 + 4 works OK but the parser doesn't like sticking a subquery in
> place
> of the numbers.
>
> Is there another way to do this?
>
> kyle@actarg.comTry :
select sum(a.price + b.price) from items as a, widgets as b;
-Tony Reina
Here's the full thing. I'm doing this, which works:
select -sum(tquant) from mtr_reg where
status = 'clsd' and
fr_proj = 20 and
pnum = '1122'
union
select sum(tquant) from mtr_reg where
status = 'clsd' and
to_proj = 20 and
pnum = '1122'
;
This yields two numbers, one negative and the other positive. If I add them together
in the application, I get the number I really want which represents the total number of
part 1122 that have come into inventory (project 20) minus the total number that have gone out
(i.e. current stock level).What I'm trying to do is to have SQL do the addition rather than having to read the
two sums separately and add them externally.I think the example you gave adds up all the prices of all the combinations of pairs from
aliases a and b (billions and billions...).
-- ---------------------------------------------------- Kyle Bateman President, Action Target Inc. "Viva Yo!" kyle@actarg.com (801)377-8033x101 ----------------------------------------------------
Re: [SQL] sum of two queries
Kyle Bateman wrote: >> > > I explained my problem badly. > > Here's the full thing. I'm doing this, which works: > > select -sum(tquant) from mtr_reg where > status = 'clsd' and > fr_proj = 20 and > pnum = '1122' > union > select sum(tquant) from mtr_reg where > status = 'clsd' and > to_proj = 20 and > pnum = '1122' > ; I think this will work (it seems to work when I tried it with my database): select sum(a.tquant - b.tquant) from mtr_reg as a, mtr_reg as b where a.status = 'clsd' and b.status = 'clsd' and a.pnum = '1122' and b.pnum = '1122' and a.fr_proj = 20 and b.to_proj = 20; -Tony