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).