sql >> Databáze >  >> RDS >> Oracle

Jak spojit 2 dotazy s různým počtem záznamů a sloupců v Oracle SQL?

Chcete-li získat konečný požadovaný výstup ...

... použít vnější spojení k propojení záznamů o dovolené s ostatními tabulkami. Výsledkem bude nula time_duration pro druhy dovolené, které zaměstnanec nevyčerpal.

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áš bezprostřední problém:

Vaše zobrazení obsahuje odkazy na sloupec EID ačkoli žádná z vašich odeslaných tabulek nemá sloupec s tímto názvem. Podobně dochází k záměně mezi Time_Duration a time_period .

Obecněji řečeno, život vám bude podstatně snazší, pokud použijete přesně stejný název pro běžné sloupce (tj. důsledně používejte buď employee_id nebo employeeid , nesekejte a neměňte).



  1. Použití Oracle JDeveloper 12c s Oracle Database 12c na platformě Oracle Cloud, část 2

  2. duplicitní výsledky

  3. Jak lze při použití živé funkce jquery odeslat pouze událost kliknutí (div)?

  4. unaccent() bránící použití indexu v Postgresu