sql—如何对数据进行减法或求和,并自动存储值?

hs1ihplo  于 2021-07-24  发布在  Java
关注(0)|答案(0)|浏览(218)

我有一张table叫 transaction . acc\u type是存在的事务类型。

income account = 101,102,103,104,105,106
outcome account = 111,112,113,114,115,116

在下面的示例表中,101是收入,111是结果。

___________________________________________
|id|mem_id|name|date    |acc_type|amount   |
-------------------------------------------|
| 1|m01   |A   |1/6/2020|101     |150      |
| 2|m01   |A   |2/6/2020|101     |200      |
| 3|m01   |A   |3/6/2020|111     |100      |
| 4|m02   |B   |3/6/2020|101     |150      |
| 5|m02   |B   |3/6/2020|111     | 50      |
| 6|m02   |B   |4/6/2020|101     |100      |
| 7|m03   |C   |4/6/2020|102     |500      |
| 8|m03   |C   |5/6/2020|112     | 50      |
| 9|m03   |C   |5/6/2020|112     |100      |
--------------------------------------------

所以,如果数据有相同的 mem_id 以及 acc_type =101将被聚合。但如果 acc_type 111将被减去。
可以创建如下最新余额表:

_______________________________________________________
|id|mem_id|name|date    |acc_type|amount   |balance    |
-------------------------------------------|------------
| 1|m01   |A   |1/6/2020|101     |150      |150        |
| 2|m01   |A   |2/6/2020|101     |200      |350        |
| 3|m01   |A   |3/6/2020|111     |100      |250        |
| 4|m02   |B   |3/6/2020|101     |150      |150        |
| 5|m02   |B   |3/6/2020|111     | 50      |100        |
| 6|m02   |B   |4/6/2020|101     |100      |200        |
| 7|m03   |C   |4/6/2020|102     |500      |500        |
| 8|m03   |C   |5/6/2020|112     | 50      |450        |
| 9|m03   |C   |5/6/2020|112     |100      |350        |
--------------------------------------------------------

如果是,应用的最佳方法是什么(视图、触发器、过程还是事务?)。我需要这个余额表,特别是每个成员的每个帐户类型的余额值。
我使用10.4.6-mariadb和vb.net作为界面,谢谢。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题