Chcete-li získat konečný požadovaný výstup ...
... použít vnější spojení k propojení záznamů o dovolené s ostatními tabulkami. Výsledkem bude nula time_duration
pro druhy dovolené, které zaměstnanec nevyčerpal.
select emp.Employee_ID
, le.leavetype
, le.leavebalance
, sum (el.Time_Duration) as total_Time_Duration
from employee emp
inner join leave_eligibility le
on le.department= emp.department
and le.designation= emp.designation
left outer join Employee_leave el
on el.EmployeeID = emp.Employee_ID
and el.leave_type = le.leavetype
group by emp.Employee_ID
, le.leavetype
, le.leavebalance
;
Váš bezprostřední problém:
Vaše zobrazení obsahuje odkazy na sloupec EID
ačkoli žádná z vašich odeslaných tabulek nemá sloupec s tímto názvem. Podobně dochází k záměně mezi Time_Duration
a time_period
.
Obecněji řečeno, život vám bude podstatně snazší, pokud použijete přesně stejný název pro běžné sloupce (tj. důsledně používejte buď employee_id
nebo employeeid
, nesekejte a neměňte).