2013-04-10 1 views
0

지난 주 내 PHPBB3 포럼의 일부 개인이 예약 한 총 시간에 대한 보고서를 작성하려고합니다. 예상대로 작동 쿼리 다음여러 왼쪽 조인이 내 SUM (TIMESTAMPDIFF 계산)에 영향을 받았습니다.

SELECT forum_users.username, SUM(TIMESTAMPDIFF(SECOND, schedule_slots.time_starting, schedule_slots.time_finishing)) AS seconds, group_concat(DISTINCT forum_user_group.group_id) AS user_groups 
FROM forum_users 
LEFT JOIN schedule_slots 
    ON forum_users.user_id = schedule_slots.user_id 
    AND schedule_slots.time_starting >= (CURDATE() - INTERVAL 1 WEEK) 
    AND schedule_slots.is_del = 0 
    AND schedule_slots.channel = 0 
LEFT JOIN forum_user_group 
    ON forum_user_group.user_id = forum_users.user_id 
WHERE (forum_users.group_id = 8 OR forum_users.group_id = 5 OR forum_users.group_id = 14 OR forum_users.group_id = 12) 
GROUP BY forum_users.username 
ORDER BY upper(forum_users.username) 
: 나는 다른 테이블에 가입 갈 때

그러나
SELECT forum_users.username, SUM(TIMESTAMPDIFF(SECOND, schedule_slots.time_starting, schedule_slots.time_finishing)) AS seconds 
FROM forum_users 
LEFT JOIN schedule_slots 
    ON forum_users.user_id = schedule_slots.user_id 
    AND schedule_slots.time_starting >= (CURDATE() - INTERVAL 1 WEEK) 
    AND schedule_slots.is_del = 0 
    AND schedule_slots.channel = 0 
WHERE (forum_users.group_id = 8 OR forum_users.group_id = 5 OR forum_users.group_id = 14) 
GROUP BY forum_users.username 
ORDER BY upper(forum_users.username) 

, 타임 스탬프 차이가 잘못 (더 높은의) 계산되고 끝을, 여기 내 새로운 비 작업 문이다

나는 이것에 공백을 그리기 때문에, 당신의 도움은 크게 감사하겠습니다.

답변

0

타임 스탬프 차이는 바로 계산되지만 사용자가있는 그룹의 숫자를 곱

를 내가 시도 할 것 :.

완벽하게 작동
SELECT forum_users.username, SUM(TIMESTAMPDIFF(SECOND, schedule_slots.time_starting, schedule_slots.time_finishing)) AS seconds, 
(select group_concat(DISTINCT group_id) from forum_user_group WHERE forum_user_group.user_id = forum_users.user_id) AS user_groups 
FROM forum_users 
LEFT JOIN schedule_slots 
ON forum_users.user_id = schedule_slots.user_id 
AND schedule_slots.time_starting >= (CURDATE() - INTERVAL 1 WEEK) 
AND schedule_slots.is_del = 0 
AND schedule_slots.channel = 0 
WHERE (forum_users.group_id = 8 OR forum_users.group_id = 5 OR forum_users.group_id = 14 OR forum_users.group_id = 12) 
GROUP BY forum_users.username, user_groups 
ORDER BY upper(forum_users.username) 
+0

, 덕분에 많이! –

관련 문제