好的,所以我想尝试一些棘手的事情。我有一个PHP日历计划程序,mySQL正在计划他们的假期。
在数据库中看起来像这样: 每个人都使用日期(z)排序休假日列表 - 仅限日期。
所以在dbase中它看起来像这样:
4
5
6
7
22
23
24
25
52
等
输出应该列出所有休假期间的工作日数,最后总结。就这样:
4-7 (4)
22-25 (2)
52 (1)
------
Sum (7)
我有计算工作日的工作功能,所以这取决于我,但任何人都知道如何从每个这样的时期获得第一天和最后一天?
答案 0 :(得分:0)
您可以使用此查询获取结果的第一部分。
select CONCAT(min(day), '-', max(day), ' (', max(day)-min(day)+1, ')') as result
FROM
(
select day, @curRow := @curRow + 1 as row_number, day - @curRow FROM days d JOIN (SELECT @curRow := 0) r
) A group by day - row_number;
此查询将提供总和:
SELECT CONCAT('Sum (', CAST(SUM(results) as CHAR(20)), ')') as results FROM
(
select max(day) - min(day) + 1 as results FROM
(
select day, @curRow := @curRow + 1 as row_number, day - @curRow FROM days d JOIN (SELECT @curRow := 0) r
) A group by day - row_number
) B
有关此工作的解释,请参阅this post。