Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Làm thế nào để nối 2 truy vấn với số lượng bản ghi và cột khác nhau trong sql oracle?

Để 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_Durationtime_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).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Phiên bản Oracle được nhúng hoặc quản lý để kiểm tra tích hợp

  2. PL / SQL Trigger để cập nhật một bảng khác từ INSERT trên một bảng

  3. Oracle Dynamic Pivoting

  4. thay đổi kích thước của kiểu dữ liệu trong sql

  5. cách thay thế ký tự có dấu trong cột varchar2 trong oracle