gpt4 book ai didi

mysql - 按 id 将两列求和到一个字段

转载 作者:行者123 更新时间:2023-11-29 13:26:19 25 4
gpt4 key购买 nike

我需要将 id 的两列求和到具有相同 id 的一个字段

例如:我想要的余额是收入 - 支出=余额

表事务:

=========================================================
| id | idBudget | expenses || income |
=====+========+===============+=====|=====+========+====|
| 1 | 2 | 10 || 0 |
|----+--------+---------------+-----||----+--------+----|
| 2 | 3 | 200 || 0 |
|----+--------+---------------+-----||----+--------+----|
| 3 | 2 | 1 || 100 |
|----+--------+---------------+-----||----+--------+----|
| 4 | 2 | 0 || 1000 |
|----+--------+---------------+-----||----+--------+----|

表预算:

=====================================
| idBudget | Balance |
=====+========+===============+=====|
| 2 | 1090 |
|----+--------+---------------+-----|
| 3 | -200 |
|----+--------+---------------+-----|

我厌倦了使用触发器,但我想我不知道如何实现它

最佳答案

CREATE TABLE starting_balance AS (SELECT * FROM budget);

DROP TABLE budget;

CREATE VIEW budget AS (
SELECT
sb.idBudget,
sb.balance + SUM(t.income - t.expenses) AS balance
FROM starting_balance sb
LEFT JOIN transactions t ON (t.idBudget = sb.idBudget)
GROUP BY
sb.idBudget,
sb.balance
);

换句话说,使用 View 而不是表。您可以不时更新起始余额(并删除或标记您不再需要的交易!),并且您可以使用物化 View 。

关于mysql - 按 id 将两列求和到一个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20091221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com