无法创建SQL查询

时间:2012-10-19 19:12:30

标签: mysql sql

我一直在考虑如何编写这个SQL查询一段时间,但在考虑了几个小时后,我想我会问SO社区是否有任何想法。

以下是表格相关部分的模拟:

合同

  • ID
  • 日期
  • ar(是/否)
  • 术语

付款

  • contract_id
  • PAYMENT_DATE

查询的目的是每月确定我们预期的付款次数,以及我们收到的付款次数。

期待付款的条件 预计付款在contracts.termcontracts.date个月开始,如果contracts.ar为“是”。在第一次错过付款后的一个月内,付款将持续到期。​​

另外还有一个复杂因素:付款可能会延迟,但他们需要显示好像是在预期日期付款。

数据就在那里,但我一直无法绕过SQL查询。我不是一个SQL大师 - 我只是在处理更简单的查询方面有相当多的经验。如果可能的话,我想避免在代码中过滤结果 - 但是没有你的帮助,这可能是我必须要做的。

预期产出

Month    Expected Payments    Received Payments
January  500                    450
February 498                    478
March    234                    211
April    987                    789
...

SQL小提琴

我创建了一个SQL小提琴:http://sqlfiddle.com/#!2/a2c3f/2

1 个答案:

答案 0 :(得分:1)

如果不编写查询,我可以给你一般的想法: 在合约表中,以月为单位转换date + term,并将结果集按ar ='YES'的月份分组。这可以为您提供预期的付款。

使用第二个表格,按月收集付款_date,按月收集付款次数。

然后,您可以在一个月内加入这两个子结果,以便在一个结果集中获取这两个信息。