sum of two queries

Поиск
Список
Период
Сортировка
Искать

sum of two queries

От:
Kyle Bateman <kyle@actarg.com>
Дата:
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

От:
Kyle Bateman <kyle@actarg.com>
Дата:
 G. Anthony Reina wrote: 
Kyle Bateman wrote:

> 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

Try :

select sum(a.price + b.price) from items as a, widgets as b;

-Tony Reina

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'
;
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

От:
"G. Anthony Reina" <reina@nsi.edu>
Дата:
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



FAQ