【发布时间】:2019-10-16 14:25:24
【问题描述】:
大家好?我正在使用存储员工工资、日期和电表读数的 MySQL 表。我想选择上个月的读数作为上个月的读数,当月的读数作为当月的读数,这就是我的意思
payno | date | value
-------+------------+------------
6 | 2019-08-31 | 2477
6 | 2019-09-25 | 2487
8 | 2019-08-31 | 1651.2
8 | 2019-09-25 | 1697.6
上面是我表的结构,我想实现这样的:
payno | previous month| current month
-------+---------------+------------
6 | 2477 | 2487
8 | 1651.2 | 1697.6
请注意,上个月的读数是月份(日期)为 8 的读数,而当前月份的读数是月份(日期)为 9 的读数。
【问题讨论】:
-
你用的是哪个版本的mySQL?
-
@jimmy8ball 我使用的是 MySQL 5.6,在这种情况下 MYSQL 版本真的重要吗?
-
如果您使用的是后一个版本,即 8+,您可以考虑使用窗口函数
-
“我使用的是 MySQL 5.6,在这种情况下 MYSQL 版本真的很重要吗?” 是的 MySQL 版本真的很重要,或者你可以使用 LEAD/LAG (MySQL 8+)或者您使用 MySQL 的用户变量 (MySQL 5.1+) 进行模拟,或者使用相关的子查询或滥用 MySQL 的 GROUP_CONCAT ..
-
...也不清楚
payno组是否可以有两个以上的记录..
标签: mysql