gpt4 book ai didi

MySQL复杂算术

转载 作者:可可西里 更新时间:2023-11-01 07:56:53 27 4
gpt4 key购买 nike

我有一个 MySQL 表设置如下:

debts

--------------------------
owed_by | owed_to | amount
--------|---------|-------
Alice | Bob | 5
Bob | Jane | 10
Alice | Jane | 10
Jane | Bob | 5

是否可以在 MySQL 中编写查询以返回每个人所欠的总额?他们欠谁的并不重要,我只想归还每个人并且(欠所有人 - 欠所有人)

得到欠款总额很容易

SELECT `owed_by`, SUM(`amount`) as 'Total Debt'
FROM `debts`
GROUP BY `owed_by`
ORDER BY SUM(`amount`) DESC

但我不知道如何减去欠他们的钱。

此外,作为一般规则,在 MySQL(如果可能的话)或 PHP 中执行这样的操作更好吗?

这是一个包含我的示例数据的 SQL Fiddle:http://sqlfiddle.com/#!2/dd7cf/1

最佳答案

你可以把两边结合起来:

select Person, sum(debt) as 'Total Debt'
from (
select owed_by as 'Person', amount as 'debt'
from debts
union all
select owed_to, -1*amount
from debts
) as q
group by Person;

关于MySQL复杂算术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12583873/

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