Like this:
SELECT
a.emp_num,
a.name,
b.cont_date
FROM main_emp a
INNER JOIN main_cont b ON a.emp_num = b.emp_num AND a.calc_year = b.calc_year
INNER JOIN
(
SELECT emp_num,calc_year, max(bb.cont_date) AS max_date
from main_cont bb
GROUP BY emp_num,calc_year
) bb_max
on a.emp_num = bb_max.emp_num and a.calc_year = bb_max.calc_year
and b.cont_date = bb_max.max_date
INNER JOIN
(
SELECT emp_num, calc_year, count(*) AS count, max(ser_date) AS MaxDate
from main_serv
WHERE calc_year IS NOT NULL
GROUP BY emp_num, calc_year
) x ON x.count = 0 OR b.cont_date > x.MaxDate
AND x.emp_num = a.emp_num
AND x.calc_year = a.calc_year
where a.calc_year = 2015
order by 1