SELECT DISTINCT emp_no,first_name,last_name,btype,salary,
(CASE WHEN btype = 1 THEN salary0.1
WHEN btype = 2 THEN salary
0.2
ELSE salary*0.3 END) bonus
FROM(SELECT e.emp_no,first_name,last_name,btype,salary, s.from_date
FROM employees e JOIN salaries s ON e.emp_no = s.emp_no
JOIN emp_bonus eb ON e.emp_no = eb.emp_no
JOIN (SELECT MAX(from_date) maxd FROM salaries GROUP BY emp_no)A ON s.from_date = maxd)B;