首页 > 解决方案 > Mysql - 在特定日期记录中查找缺失的月份

问题描述

我有一张员工工资记录表

employee_table (employee_idn, pay_date, pay_amount)
employee_idn pay_date pay_amount
1, 2017-04-17,  100  
1, 2017-05-17,  100    
1, 2017-08-17,  100  
2, 2017-04-17,  200  
2, 2017-09-17,  200    
3, 2017-08-17,  500  

如果我在一个日期范围内传递"2017-04-01" to "2018-03-31",我想通过员工知道在结束日期之前哪些月份没有向用户付款(缺少月份)。因此,对于结果集,按员工,例如employee_idn (1),我想返回

1, 2017-06-30,  0  
1, 2017-07-31,  0    
1, 2017-09-30,  0 
1, 2017-10-31,  0 
1, 2017-11-30,  0 
1, 2017-12-31,  0 
1, 2018-01-31,  0 
1, 2018-02-28,  0  
1, 2018-03-31,  0 

其他员工也一样 (2,3)。

我的 mysql 版本是 5.1.30-community-log

我尝试了多种方法,但没有运气。任何帮助表示赞赏。

标签: mysql

解决方案


你需要通过你的脚本来做这件事,你不能总是依赖数据库来做这样的事情,如果你这样做,你的代码会更快,因为有现成的函数可以处理日期范围。


推荐阅读