我有一个计算总小时的任务任职于本周查询:最佳方法
SELECT name AS 'Task Name'
, sum(hours) AS `Total Hours`
FROM time_records
WHERE yearweek(record_date, 3) = yearweek(now(), 3)
GROUP BY
weekday(record_date), name
WHERE子句指定当前周:
WHERE yearweek(record_date, 3) = yearweek(now(), 3)
该数据显示为使用MySQL查询和PDO语句的表格。
我现在希望通过点击表格下方的链接(例如“上周”)来为查看器添加一个选项,以查看前一周的数据。为了显示这些数据,我需要更新的WHERE子句来查询前一周:
WHERE yearweek(record_date, 3) = yearweek(now(), 3) - 1
我不知道该怎么办最好的方法是什么?我宁愿只保留整个查询的一个版本。一个想法是用PHP来添加“ - 1”的查询,如:
WHERE yearweek(record_date, 3) = yearweek(now(), 3) <?php if (prev) {echo "- 1" ;} ?>
我认为这应该工作,但我怎么能确定分组情况?我应该让整个查询在一个函数内部,这样默认情况下它可以是“Time_hours(0)”,前一个可以是“Time_hours(1)” - 或者有更好的方法吗?
我很担心保持代码的可管理性并遵循最佳实践。任何提示将不胜感激。谢谢!
当然,如果您在一个日历年的第一个星期内使用“上周”,则“年周”当然会产生无用的结果。 –
@OllieJones你会推荐什么?我知道这是我需要在1月份 –