SQL With Multiple Condition and Column I have 3 tables:

Employee
+----+--------------+--------------------+----------------+
| Id | EmployeeName | EmployeePermission | Position       |
+----+--------------+--------------------+----------------+
|  1 | Christopher  |                  3 | Leader         |
|  2 | Helen        |                  4 | Manager        |
|  3 | Ana          |                  5 | Branch Manager |
+----+--------------+--------------------+----------------+  

Employee Approval
+----+--------------------+--------+-----------+
| Id | EmployeePermission | TaskID | IsApprove |
+----+--------------------+--------+-----------+
|  1 |                  3 | 1a     |         1 |
|  2 |                  4 | 1a     |         0 |
|  3 |                  5 | 1a     |         0 |
|  4 |                  3 | 2b     |         0 |
|  5 |                  4 | 2b     |         0 |
+----+--------------------+--------+-----------+

Items
+----+----------+-------+--------+
| Id | ItemName | Spec  | TaskId |
+----+----------+-------+--------+
|  1 | Ruler    | 2 pcs | 1a     |
|  2 | Book     | 4 pcs | 2b     |
+----+----------+-------+--------+


I want show the name of employee, who already approve and the next approval name, i think like this

+----+--------+-------------+--------------+
| Id | TaskId |  Approval   | NextApproval |
+----+--------+-------------+--------------+
|  1 | 1a     | Christopher | Helen        |
|  2 | 2b     | -           | Christopher  |
+----+--------+-------------+--------------+


For now I use a subquery to show the name but cant get the condition right.
I try to use CASE WHEN but it seems complicated and I get lost.

Is there a way to make it more simple?
Use a Derived Table/CTE to get a single ID for "approved"/"not approved" and LEFT JOIN it two times to Employees:

SELECT TaskID
   ,MAX(CASE WHEN IsApprove = 1 THEN EmployeePermission end) AS Approved_ID
   ,MIN(CASE WHEN IsApprove = 0 THEN EmployeePermission end) AS Not_Approved_ID
FROM "Employee Approval"
GROUP BY TaskID