mysql - 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
我尝试了多种方法,但没有运气。任何帮助表示赞赏。
解决方案
你需要通过你的脚本来做这件事,你不能总是依赖数据库来做这样的事情,如果你这样做,你的代码会更快,因为有现成的函数可以处理日期范围。
推荐阅读
- c# - 在 ASP.NET Core 中使用通用包含函数
- python - 一个优雅的,更短的方法来解决字母等级分配问题
- python - 使用 SciKit Learn 将 K-Means 输出到 CSV - 给出集群名称
- sed - Vagrant provision sed 命令返回错误
- postgresql - 操作超时点网核心
- openstreetmap - 有没有办法获得分页的立交桥查询的结果?
- amazon-web-services - EC2 UserData 完成执行后 AWS Cloudformation 堆栈删除
- youtube - 用于 Web 应用程序的云视频存储
- android - 片段不隐藏
- linux - 如果文件不存在则创建一个文件并在该文件中写入0,否则什么都不做