Обучение самому SQL и использование базы данных info сотрудника на oracle 11g.
Я пытаюсь вернуть общее количество часов и дней, отработанных сотрудником в каждом из "офисов"
Однако «рабочие часы» возвращают правильное время каждой смены сотрудников, но в виде отдельных строк вместо одной строки с общим числом дней и общим количеством часов.(Это означает, что в каждой строке есть количество дней = 1)
SELECT L.OFFICE_NAME as "Shop",
(us.LAST_NAME || ' , ' || us.FIRST_NAME) AS "Employee Name",
COUNT(distinct shift.shift_date) as "WORK DAYS",
round((shift2.MaxSignOffTime-shift.MinSignOnTime)*24, 1) AS "WORK HOURS",
FROM
LOCAL_OFFICE L
JOIN
Orders ord
ON L.LOCAL_OFFICE_ID = ord.LOCAL_OFFICE_ID
JOIN
USERS us
ON
us.USER_ID = ord.ASSIGNED_TO_USER_ID
join
(SELECT min(act_sign_dt) as MinSignOnTime, USER_ID, shift_token
FROM CLIENT_SIGN
WHERE
BEG_OF_SHIFT = 'Y'
GROUP BY shift_date, user_id, shift_token) shift on shift. user_id = ord.assigned_to_user_id
join
(SELECT max(act_sign_dt) as MaxSignOffTime, USER_ID, shift_token
FROM CLIENT_SIGN
WHERE
end_OF_SHIFT = 'Y'
GROUP BY shift_date, user_id, shift_token) shift2 on shift2.shift_token = shift.shift_token
GROUP BY OFFICE_NAME, LAST_NAME, FIRST_NAME,shift.shift_date, (shift2.MaxSignOffTime-shift.MinSignOnTime)
ORDER BY OFFICE_NAME, "Employee Name"
Я готов ответить на любые необходимые вопросы, но я просто не могу понять, почему он не группируется в один ряд для каждого сотрудника для каждого офисаместо