With 
    t_salary AS(
    SELECT
    t1.department,
    ROUND(AVG(t2.normal_salary - t2.dock_salary),2) avg_salary
    FROM staff_tb t1
    INNER JOIN salary_tb t2
    ON t1.staff_id = t2.staff_id
    GROUP BY t1.department
    ),

    m_salary as(
    SELECT
    t1.department,
    IFNULL(ROUND(AVG(t2.normal_salary - t2.dock_salary),2),'0.00') average_actual_salary_male
    FROM staff_tb t1
    LEFT JOIN salary_tb t2
    ON t1.staff_id = t2.staff_id
    WHERE t1.staff_gender = 'male'
    GROUP BY t1.department
    ),

    f_salary as(
    SELECT
    t1.department,
    IFNULL(ROUND(AVG(t2.normal_salary - t2.dock_salary),2),'0.00') average_actual_salary_female
    FROM staff_tb t1
    LEFT JOIN salary_tb t2
    ON t1.staff_id = t2.staff_id
    WHERE t1.staff_gender = 'female'
    GROUP BY t1.department
    )

SELECT 
a1.department,
a1.avg_salary average_actual_salary,
IFNULL(b1.average_actual_salary_male,'0.00') average_actual_salary_male,
c1.average_actual_salary_female
FROM t_salary a1
LEFT JOIN m_salary b1
ON a1.department = b1.department
LEFT JOIN f_salary c1
ON a1.department = c1.department
ORDER BY average_actual_salary DESC