Hi,

Hoping someone can help me with this little issue! It seems really
simple but my brain is refusing to work.

We have a transactions tables like so...

mysql> desc transactions;
+-----------+----------------------+------+-----+---------+----------------+
| Field     | Type                 | Null | Key | Default | Extra
|
+-----------+----------------------+------+-----+---------+----------------+
| trans_id  | int(10) unsigned     | NO   | PRI | NULL    |
auto_increment | 
| user_id   | smallint(5) unsigned | NO   | MUL | NULL    |
| 
| acc_id    | smallint(5) unsigned | NO   | MUL | NULL    |
| 
| tran_date | date                 | NO   |     | NULL    |
| 
| payee     | varchar(25)          | NO   |     | NULL    |
| 
| amnt      | decimal(8,2)         | NO   |     | NULL    |
| 
| cat_id    | int(10) unsigned     | NO   | MUL | NULL    |
| 
+-----------+----------------------+------+-----+---------+----------------+
7 rows in set (0.00 sec)



...this joins to a few other tables and has the following simple query
run on it to show all transactions for a particular user and account.

mysql>  SELECT a. trans_id ,a.tran_date,b.cat_type,a.payee,a.amnt from
transactions a join categories b on a.cat_id = b.cat_id where
a.user_id=1 and a.acc_id=3 order by a.tran_date ASC;

Which returns a list something like this...

+-----------+-----------------+--------------+---------------------------+----------+
 trans_id | tran_date    | cat_type | payee                   | amnt  |
+-----------+-----------------+-------------+----------------------------+----------+
 |          1| 2009-08-31 | Income   | Opening Balance    |   0.00 | 
 |          3| 2009-09-02 | Income   | Test Transactions   |   0.20 | 
 |        23| 2009-09-02 | Income   | Tester                    |   1.20
| 
 |      102| 2009-09-02 | Income   | Debit                     |  -1.09
| 
+-----------+-----------------+-------------+----------------------------+----------+
4 rows in set (0.00 sec)

Now this has been fine for a long time until this afternoon when I get a
call saying the query needs editing to add another column to the output
showing a rolling account balance. This means the current output show
above needs to change to something like this...

+---------+---------------+------------+----------------------+-------+-------------------------+
|trans_id | |tran_date     | cat_type | payee                | amnt |
Rolling Balance      |
+---------+---------------+------------+----------------------+-------+-------------------------+
|           1| 2009-08-31 | Income   | Opening Balance |  0.00 |
0.00 |
|           3| 2009-09-02 | Income   | Test Transactions |  0.20 |
0.20 |    
|         23| 2009-09-02 | Income   | Tester                   |  1.20 |
1.40 |
|       102| 2009-09-02 | Income   | Debit                    | -1.09 |
0.31 |
+---------+---------------+------------+----------------------+-------+-------------------------+
4 rows in set (0.00 sec)

Anyone got any tips on how to achieve this? Group with ROLLUP doesn't
really do what I need. I've tried a couple of sub queries but cant get
the output I need. 

I want to avoid storing a rolling balance into the table because this
would take a while due to the number of records and could create
problems when someone goes in and modifies a single transaction.

Any tips would be much appreciated.

Regards

Reply via email to