SELECT DISTINCT employeename, trainingname, MAX(x) FROM(SELECT DISTINCT employeename, trainingname, desire + 2*priority AS x FROM employee, teamreq, wishlist, training WHERE(employee.employeeid=wishlist.employeeid AND training.trainingid=wishlist.trainingid) AND taken=0 AND desire > 0 AND priority > 0 AND (training.trainingid=teamreq.trainingid AND (teamreq.teamid=employee.employeeteam OR teamreq.teamid=employee.employeeteam2) )UNIONSELECT DISTINCT employeename, trainingname, desire AS x FROM employee, teamreq, wishlist, training WHERE(employee.employeeid=wishlist.employeeid AND training.trainingid=wishlist.trainingid) AND taken = 0 AND desire > 0UNIONSELECT DISTINCT employeename, trainingname, 2*priority AS x FROM employee, teamreq, wishlist, training WHERE(training.trainingid=teamreq.trainingid AND (teamreq.teamid=employee.employeeteam OR teamreq.teamid=employee.employeeteam2))ORDER BY employeename)GROUP BY employeename, trainingnameORDER BY employeename, MAX(x) DESC