variables in SQL??

Started by Francisco Hernandezover 25 years ago4 messagesgeneral
Jump to latest
#1Francisco Hernandez
xy0xy0@earthlink.net

anyone know if SQL has variables?

what im trying to do is have a Sum of a colum.. as it goes forwards with the
cursor..
like so:

Price|Sum
5|5
4|9
10|19
2|21
7|28

i can do it in the accessing language.. like PHP, Python, Perl etc..
but i wanted to know if the actuall DB could do it?
any ideas?

#2Volker Paul
vpaul@dohle.com
In reply to: Francisco Hernandez (#1)
Re: [SQL] variables in SQL??

what im trying to do is have a Sum of a colum.. as it goes forwards with the
cursor..
like so:

Price|Sum
5|5
4|9
10|19
2|21
7|28

I think what you mean is called running sum, I had the same problem
before, and I found no other solution than creating a column for it,
and calculating its values by a function.

Yours,

V.Paul

In reply to: Francisco Hernandez (#1)
Re: variables in SQL??

what im trying to do is have a Sum of a colum.. as it goes forwards

I don't think this is what you want, but I suppose it might help....

Table    = simple
+----------------------------------+----------------------------------+-----
--+
|              Field               |              Type                |
Length|
+----------------------------------+----------------------------------+-----
--+
| price                            | int4                             |
4 |
+----------------------------------+----------------------------------+-----
--+
=> select price,count(price) from simple group by price;
price|count
-----+-----
    1|    4
    2|    7
    4|    8
    5|    5
    7|   16
    9|    1
   10|   12
(7 rows)

=> create view simple_v as select price,count(price) from simple group by
price;
CREATE 19503 1
=> select * from simple_v;
price|count
-----+-----
1| 4
2| 7
4| 8
5| 5
7| 16
9| 1
10| 12
(7 rows)

=> insert into simple (price) values (5);
INSERT 19504 1
=> select * from simple_v;
price|count
-----+-----
1| 4
2| 7
4| 8
5| 6
7| 16
9| 1
10| 12
(7 rows)

#4Craig Johannsen
cjohan@home.com
In reply to: Francisco Hernandez (#1)
Re: Re: [SQL] variables in SQL??

You can create a running total provided that you have a unique
sequentially increasing (or decreasing) ID for each row. See the
following example:

create table tran(id int primary key, price dec(8,2));
insert into tran values(1,5.00);
insert into tran values(2,4.00);
insert into tran values(3,10.00);
insert into tran values(4,2.00);
insert into tran values(5,7.00);

select price, (select sum(price) from tran as d1
where d1.id <= d2.id) as "sum"
from tran as d2;

price | sum
-------+-------
5.00 | 5.00
4.00 | 9.00
10.00 | 19.00
2.00 | 21.00
7.00 | 28.00
(5 rows)

Francisco wrote:

what im trying to do is have a Sum of a colum.. as it goes forwards with the
cursor..
like so:

Price|Sum
5|5
4|9
10|19
2|21
7|28

====================================
Craig Johannsen
Critical Path Consulting, Inc.
604-762-1514
http://members.home.net/cjohan/cpath
====================================