这是我的工作表
ID WORK_ID DATE
1 5 2018-05-10
2 6 2018-05-12
3 5 2018-05-15
5 5 2018-05-16
6 6 2018-05-16
.
.
我有一个函数来计算日期之间的工作日名称kac_is_gunu($ date1,$ date2)工作正常 .
我的问题是;这是一张有很多行的大 table . 我想找到每个work_id的每个日期之间的差异
例如,在此表中为work_id 5 kac_is_gunu(2018-05-15,2018-05-10)kac_is_gunu(2018-05-16,2018-05-15)
如何从此表中获取此类日期到我的代码?
这是我想要的结果;
2018-05-16 - 2018-05-15 (Pair 1 of work_id 5)
2018-05-15 - 2018-05-10 (Pair 2 of work_id 5)
2018-05-16 - 2018-05-12 (Pair 1 of work_id 6)
.
.
稍后我将计算日期之间的工作日
我这样做的原因是;一旦工作完成,我只将工作结束日期作为日期,这意味着下一次开始,因此工作的开始日期是之前的结束
2 回答
这是你如何选择所有对:
但是你确定你想要选择所有对而不是彼此连续的对吗?
编辑
初始查询选择了所有对,现在我们将看看如何选择连续项:
请注意,查询与初始查询类似,在查找具有类似
WORK_ID
的对,其中t1 .ID
<t2 .ID
但我们添加了一个附加条件,即不存在满足某些条件的记录 . 标准是第三条记录的ID
介于t1
和t2
的ID
之间,并且具有类似的WORK_ID
. 当然,您可以跳过ID
比较到date
比较 ....可以扩展到(未经测试)......