Para obtener el resultado final deseado...
... use una combinación externa para vincular los registros de licencia tomada a las otras tablas. Esto dará cero time_duration para tipos de licencia que el empleado no ha tomado.
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
;
Su problema inmediato:
Su vista tiene referencias a una columna EID aunque ninguna de sus tablas publicadas tiene una columna con ese nombre. Asimismo, existe confusión entre Time_Duration y time_period .
De manera más general, encontrará la vida considerablemente más fácil si usa exactamente el mismo nombre para las columnas comunes (es decir, usa consistentemente employee_id o employeeid , no picar y cambiar).