【发布时间】:2017-03-08 22:23:02
【问题描述】:
我有一个名为 view_uncollected 的视图。
|RemitNo|ID|Employer| AP_From | AP_To |Amount|
| 1 |1 | a |2016-01-01|2016-01-31|200.00|
| 2 |1 | a |2016-02-01|2016-02-29|200.00|
| 3 |1 | a |2016-03-01|2016-03-31|200.00|
| 4 |1 | a |2016-04-01|2016-05-31|400.00|
| 5 |1 | a |2016-06-01|2016-06-30|200.00|
| 6 |2 | b |2016-01-01|2016-03-31|600.00|
| 7 |2 | b |2016-04-01|2016-04-30|200.00|
| 8 |2 | b |2016-05-01|2016-05-31|200.00|
| 9 |3 | c |2016-01-01|2016-01-31|200.00|
| 10 |3 | c |2016-01-01|2016-01-31|200.00|
| 11 |3 | c |2016-03-01|2016-03-31|200.00|
我需要找出从 2016 年 1 月到 7 月缺少多少 MONTHS。
根据上表有一些复杂的情况:
- 雇主 (a) 仅在 2016 年 1 月至 2016 年 6 月期间支付。它缺少一个月。
- 雇主 (b) 仅在 2016 年 1 月至 2016 年 5 月期间支付。它缺少 2 个月。
- 雇主 (c) 支付了 1 月 (2x) 和 3 月的费用。它缺少5个月。 我们不会将 1 月的另一笔付款视为 2 月。
我如何计算每个雇主失踪的月份?
我所做的是使用这个 7 - COUNT(RemitNo) GROUP BY ID 因为我认为每个 ONE ROW = ONE MONTH 。但是在查看我的结果后,一些雇主有ONE ROW = 2 MONTHS,比如RemitNo = 4。我当时就知道这是错误的,因为它只计算行数而不是月数。
这背后的原因是,我们需要知道 2016 年 1 月至 7 月期间有多少未收到的汇款。
感谢您的建议和cmets。抱歉这个新手问题
【问题讨论】:
-
你需要一个日历表,google一下,网上有很多教程
-
只是想知道如果在同一笔付款上支付几个月,金额不应该大于一个月吗?
-
@JuanCarlosOropeza 是的,先生,我现在将编辑我的示例。
-
您还应该检查描述,因为数据显示
a分五期支付了所有 6 个月,而b只错过了三期支付的一期