我什至不知道从哪里开始进行这样的查询。基本上我得到了一个具有一定数量的数据库,我的老板希望我将这些 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/