Untuk mendapatkan hasil akhir yang diinginkan ...
... gunakan gabungan luar untuk mengikat catatan cuti yang diambil ke tabel lainnya. Ini akan memberikan nol time_duration
untuk jenis cuti yang belum diambil oleh karyawan.
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
;
Masalah langsung Anda:
Tampilan Anda memiliki referensi ke kolom EID
meskipun tidak ada tabel Anda yang diposting memiliki kolom dengan nama itu. Demikian juga ada kebingungan antara Time_Duration
dan time_period
.
Secara umum, Anda akan menemukan hidup jauh lebih mudah jika Anda menggunakan nama yang sama persis untuk kolom umum (yaitu secara konsisten menggunakan employee_id
atau employeeid
, jangan potong dan ubah).