За да получите крайния желан резултат ...
... използвайте външно съединение, за да свържете записите за взет отпуск с другите таблици. Това ще даде нула time_duration
за видове отпуски, които служителят не е ползвал.
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
;
Вашият непосредствен проблем:
Вашият изглед има препратки към колона EID
въпреки че нито една от вашите публикувани таблици няма колона с това име. По същия начин има объркване между Time_Duration
и time_period
.
По-общо казано, ще откриете, че животът ви е значително по-лесен, ако използвате абсолютно същото име за общи колони (т.е. последователно използвайте или employee_id
или employeeid
, не нарязвайте и не променяйте).