sql >> Database teknologi >  >> RDS >> Oracle

Hvordan forbinder man 2 forespørgsler med forskelligt antal poster og kolonner i oracle sql?

For at få det endelige ønskede output ...

... brug en ydre sammenføjning til at binde de taget orlov til de andre borde. Dette vil give nul time_duration for orlovstyper, som medarbejderen ikke har afholdt.

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 
       ;

Dit umiddelbare problem:

Din visning har referencer til en kolonne EID selvom ingen af ​​dine opslåede tabeller har en kolonne med det navn. Ligeledes er der forvirring mellem Time_Duration og time_period .

Mere generelt vil du finde livet betydeligt lettere, hvis du bruger nøjagtig det samme navn til almindelige kolonner (dvs. konsekvent bruge enten employee_id eller employeeid , ikke hugge og ændre).



  1. En begyndervejledning til SQL-tabeller

  2. Hvordan gemmer man en rækkes multiple kolonnes sum på den samme tabels samme rækkes en anden kolonne?

  3. PostgreSQL:Rolle er ikke tilladt at logge ind

  4. Rullende 90 dages datovindue i SQL Oracle