Để có được đầu ra mong muốn cuối cùng ...
... sử dụng một phép nối bên ngoài để buộc các hồ sơ nghỉ phép đã thực hiện với các bảng khác. Điều này sẽ không cho time_duration
đối với các loại nghỉ phép mà nhân viên đã không thực hiện.
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
;
Vấn đề trước mắt của bạn:
Chế độ xem của bạn có tham chiếu đến một cột EID
mặc dù không có bảng nào đã đăng của bạn có một cột có tên đó. Tương tự, có sự nhầm lẫn giữa Time_Duration
và time_period
.
Nói chung, bạn sẽ thấy cuộc sống dễ dàng hơn đáng kể nếu bạn sử dụng cùng một tên chính xác cho các cột chung (tức là sử dụng liên tục employee_id
hoặc employeeid
, không chặt chẽ và thay đổi).