当发生重叠日期范围时 MySQL 求和金额

标签 mysql sql

我什至不知道从哪里开始进行这样的查询。基本上我得到了一个具有一定数量的数据库,我的老板希望我将这些 SQL 数据转换为 View 。我不知所措,不知道从哪里开始,也不知道如何完成我需要完成的事情:(

我有一个这样的表:

record_id    amount    start_date    end_date
1            20000     2018-01-01   2018-12-01
1            -15000    2018-02-01   2018-04-01
1            50000     2018-04-02   2018-06-30

我需要它看起来像这样:

record_id    amount   start_date    end_date
1            20000    2018-01-01    2018-01-30
1            5000     2018-02-01    2018-04-01 
1            70000    2018-04-02    2018-06-30
1            20000    2018-07-01    2018-12-01

因此,在所有重叠的日期范围内,我们计算总和并将其分隔到一个新行中。一旦该日期范围结束,我们将返回到延长至 12 月的行。这只是一个示例,行由唯一的 record_id 绑定(bind),并且将具有不同的金额和日期范围。有些行甚至不会重叠。

我该如何开始编写这样的查询? MySQL 是正确的选择吗?

最佳答案

我认为你需要把它分开。

使用MySQL来查询数据,但是你想要做的事情需要相当多的处理。

我会考虑利用一些面向对象的语言(PHP、C#、Python)来处理尝试计算总和的所有逻辑。

关于当发生重叠日期范围时 MySQL 求和金额,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51792269/

相关文章:

php - 在 Woocommerce 中批量启用产品库存管理

php - MYSQL PHP通过html形式更新db表信息

mysql - 2表SQL查询怪异结果

mysql - 我需要在 MySQL 中进行日期时间转换。如何确定客户端的时区?

sql - Django使用元组列表过滤多列

mysql - 数据库中的数据太多 - 需要做出 "replication"决策

mysql - 在 SQL 中第二次选择最大值

mysql - WordPress orderby 元值的第二个字

mysql - 删除mysql中的行

javascript - 是否有用于 Web SQL (javascript) 的 ORM 框架?