>>>... >>>LEFT OUTER JOIN EmpItems >>>ON Employees.emKey = EmpItems.itEmKey AND EmpItems.itCode = 10 >>>LEFT OUTER JOIN >>> (SELECT EmpItems.itEmKey AS itEmKey, >>> EmpItems.itPerc AS SpecialPerc >>> FROM EmpItems >>> WHERE EmpItems.itCode = 805) >>> AS Item805 >>>ON Employees.emKey = Item805.itEmKey >>>>>
>SELECT Employees.emNumber, > Employees.emPersNr, > Employees.emStartWrk, > Employees.emEndWrk, > Employees.emName, > Employees.emFirst, > Employees.emBirthDat, > EmpItems.itSwitch1 AS WeekDays, > CAST(EmpItems.itFreq AS Character(15)) AS PayFrequency, > EmpItems.itDefHrs AS DefaultHours, > EmpItems.itBaseAmt AS BaseAmount, > EmpItems.itBasePHr AS HourWage, > Item805.SpecialPerc AS SpecialPerc, > CAST(EmpItems.itSalaried AS Character(15)) AS PaidBy, > Departments.deCode, > Departments.deName, > Employees.emIdNr, > Employees.emKey, > PaySet.paKey > FROM Employees > INNER JOIN Departments > ON Employees.emDeKey = Departments.DeKey > INNER JOIN PaySet > ON Employees.emKey = PaySet.paEmKey > LEFT OUTER JOIN Functions > ON Employees.emFuKey = Functions.fuKey > LEFT OUTER JOIN StatusEmp > ON Employees.emStKey = StatusEmp.stKey > LEFT OUTER JOIN EmpItems > ON Employees.emKey = EmpItems.itEmKey AND EmpItems.itCode = 10 > LEFT OUTER JOIN > (SELECT EmpItems.itEmKey AS itEmKey, > EmpItems.itPerc AS SpecialPerc > FROM EmpItems > WHERE EmpItems.itCode = 805) > AS Item805 > ON Employees.emKey = Item805.itEmKey >There is no need to use derived table in the second join also. Just give different alias of EmpItems:
... LEFT JOIN EmpItems ON Employees.emKey = EmpItems.itEmKey AND EmpItems.itCode = 10 LEFT JOIN EmpItems Item805 ON Employees.emKey = Item805.itEmKey AND EmpItems.itCode = 805 ..You should use that alias everywhere in the query.