Enseigner moi-même SQL, et en utilisant un employé info db, sur oracle 11g.sql d'auto-apprentissage, regroupement des résultats erreur
Je suis en train de retourner le nombre total d'heures et de jours travaillés par un employé à chacun des « bureaux »
Cependant, les « heures de travail » renvoie l'heure de chaque employé décalent, mais lignes individuelles, au lieu d'avoir une ligne avec le nombre total de jours et le nombre total d'heures. (Cela signifie que chaque ligne a un nombre de jours = 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"
Je suis prêt à répondre à toutes les questions nécessaires, mais je ne peux pas voir pourquoi il est groupait pas en une ligne pour chaque employé pour chaque emplacement de bureau
peut pas vous faire un test plus simple? C'est aussi une bonne pratique pour apprendre à abstraire/simplifier un problème (Moi au moins n'ai pas d'énergie pour apprendre toute cette longue requête ...) –