Om de uiteindelijke gewenste uitvoer te krijgen ...
... gebruik een outer join om de records voor opgenomen verlof te koppelen aan de andere tabellen. Dit geeft nul time_duration
voor verlofsoorten die de werknemer niet heeft opgenomen.
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
;
Uw directe probleem:
Uw weergave bevat verwijzingen naar een kolom EID
hoewel geen van uw geposte tabellen een kolom met die naam heeft. Evenzo is er verwarring tussen Time_Duration
en time_period
.
Meer in het algemeen zult u het leven aanzienlijk gemakkelijker vinden als u exact dezelfde naam gebruikt voor algemene kolommen (d.w.z. consequent gebruik maken van employee_id
of employeeid
, niet hakken en veranderen).