Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak połączyć 2 zapytania o różnej liczbie rekordów i kolumn w Oracle sql?

Aby uzyskać ostateczny pożądany wynik ...

... użyj sprzężenia zewnętrznego, aby powiązać rekordy wykorzystanego urlopu z innymi tabelami. To da zerowy time_duration dla rodzajów urlopów, z których pracownik nie skorzystał.

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 
       ;

Twój najpilniejszy problem:

Twój widok zawiera odniesienia do kolumny EID chociaż żadna z opublikowanych tabel nie ma kolumny o tej nazwie. Podobnie jest zamieszanie między Time_Duration i time_period .

Ogólnie rzecz biorąc, życie będzie znacznie łatwiejsze, jeśli użyjesz dokładnie tej samej nazwy dla wspólnych kolumn (tj. konsekwentnie użyj employee_id lub employeeid , nie siekaj i nie zmieniaj).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Buforowanie sekwencji Oracle

  2. Jak wprowadzać znaki specjalne, takie jak &w bazie danych Oracle?

  3. java.sql.SQLException:ORA-01843:niepoprawny błąd miesiąca

  4. Oracle alter table niewystarczające uprawnienia

  5. Jak korzystać z plików Oracle DMP?