내가 가지고있는 총 시간 작업하여 현재 주 동안 일을 계산하는 쿼리가장 좋은 방법
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 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)"이 될 수 있습니까? - 또는 더 좋은 방법이 있습니까?
나는 코드를 관리하기 쉽도록 유지하고 베스트 프랙티스를 준수하는 것에 관심이 있습니다. 어떤 조언을 부탁드립니다. 감사!
yearweek는 물론 1 년 중 첫 번째 주에 사용할 때 "지난주"에 쓸모없는 결과를 제공합니다. –
@OllieJones 대신 무엇을 권하고 싶습니까? 나는 그것이 1 월 전에 해결할 필요가있는 것이라고 이해한다. –