我一直在考虑如何编写这个 SQL 查询有一段时间了,但是在考虑了几个小时之后,我想我会问 SO 社区,看看他们是否有任何想法。
这是表格相关部分的模型:
合同
- ID
- 日期
- ar(是/否)
- 学期
付款
- 合同编号
- 付款日期
查询的目的是确定每个月我们预期的付款数量与我们收到的付款数量。
预期付款的条件如果为“是”,
预期付款将在contracts.term
几个月后开始。预计付款将持续到第一次错过付款后的一个月。contracts.date
contracts.ar
这还有一个复杂的问题:付款可能会延迟,但它们需要显示为好像在预期日期付款一样。
数据都在那里,但我一直无法理解 SQL 查询。我不是 SQL 专家——我只是有相当多的处理简单查询的经验。如果可能的话,我想避免在代码中过滤结果——但如果没有你的帮助,这可能是我必须做的。
预期产出
Month Expected Payments Received Payments
January 500 450
February 498 478
March 234 211
April 987 789
...
SQL小提琴
我创建了一个 SQL Fiddle:http ://sqlfiddle.com/#!2/a2c3f/2