need sql to represent relation negation and date compare problem
The problem is not simple as it involves 2 entities/tables (Employee and Project) that have 2 relationships between them. One is through the Department (a project belongs to a department, an employee belongs to a department) and the other through Onproject (which shows that an employee has started working on a project).

Moreover, the answer needs a relational division query ("all is workers belong ..."). There are many ways to do relational division - and all are in the range of not simple to very complicated. 

One way to express the problem is with a (double) negative. Instead of finding projects where all workers do not do something, find projects where none of the workers do something. This can be expressed with a NOT EXISTS subquery:

SELECT p.* 
FROM Project AS p
WHERE p.ddate &gt; CURRENT_DATE 
  AND NOT EXISTS
      ( SELECT * 
        FROM Employee AS e
            JOIN Onproject AS w
            ON w.eid = e.eid
        WHERE w.pid = p.pid
          AND e.did = p.did
      ) ;


Or with EXCEPT:

SELECT p.* 
FROM Project AS p
    JOIN
      ( SELECT p.pid, p.did
        FROM Project AS p
        EXCEPT
        SELECT w.pid, e.did
        FROM Employee AS e
            JOIN Onproject AS w
            ON w.eid = e.eid
      ) AS pw
      ON pw.pid = p.pid
WHERE p.ddate &gt; CURRENT_DATE ;


Given the tables definitions, the latter can be (simplified?) to use NATURAL JOIN:

SELECT * 
FROM Project
    NATURAL JOIN
      ( SELECT pid, did FROM Project 
        EXCEPT
        SELECT pid, did FROM Employee NATURAL JOIN Onproject
      ) AS pw
WHERE ddate &gt; CURRENT_DATE ;