最終的に必要な出力を取得するには...
...外部結合を使用して、取得した休暇レコードを他のテーブルに関連付けます。これにより、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
、切り刻んだり変更したりしないでください)。