title: Don't show query results if they appear in the other query
body: <p>In my application each manager has a work pattern (for example Monday-Friday). But I also have a table "pattern_changes" where they can insert data if they cannot be present at work. </p>
  
  <p>With the first query I can show who is available today, according to the pattern assigned to them:</p>
  
  <pre><code>SELECT distinct gu.first_name || ' ' || gu.last_name
  FROM patterns pa JOIN fmanager_pattern fp
  ON pa.id = fp.pattern_id
  JOIN fmanagers fm 
  ON fm.id = fp.fmanager_id
  JOIN gen_users gu
  ON gu.user_id = fm.user_id
  WHERE (TO_CHAR(pa.start_dt, 'DY', 'NLS_DATE_LANGUAGE=ENGLISH') LIKE TO_CHAR(sysdate, 'DY', 'NLS_DATE_LANGUAGE=ENGLISH') AND pa.start_dt &lt; sysdate and pa.end_dt &gt; sysdate) 
  OR (TO_CHAR(pa.end_dt, 'DY', 'NLS_DATE_LANGUAGE=ENGLISH') LIKE TO_CHAR(sysdate, 'DY', 'NLS_DATE_LANGUAGE=ENGLISH') AND pa.start_dt &lt; sysdate and pa.end_dt &gt; sysdate)
  OR TO_CHAR(sysdate, 'D') BETWEEN TO_CHAR(pa.start_dt, 'D') AND TO_CHAR(pa.end_dt, 'D') AND pa.start_dt &lt; sysdate and pa.end_dt &gt; sysdate
  OR TO_CHAR(sysdate, 'D')+7 BETWEEN TO_CHAR(pa.start_dt, 'D') AND TO_CHAR(pa.start_dt, 'D')+7 AND pa.start_dt &lt; sysdate and pa.end_dt &gt; sysdate
  </code></pre>
  
  <p>In the second query I can show who is not available today, according to the pattern_changes table.</p>
  
  <pre><code>SELECT fm.id, gu.first_name || ' ' || gu.last_name
  FROM fmanagers fm JOIN pattern_changes pc 
  ON pc.fmanagers_id = fm.id
  JOIN gen_users gu 
  ON gu.user_id = fm.user_id
  WHERE pc.change_dt &lt; sysdate and pc.end_dt &gt; sysdate
  OR pc.change_dt = to_char(sysdate)
  OR pc.end_dt = to_char(sysdate))
  </code></pre>
  
  <p>For example, the first query returns: ADAM and EVA <br>
  The second query returns ADAM</p>
  
  <p>So I just want to see EVA as a result.</p>
  
  <p>I tried to do it with NOT IN or NOT EXISTS but neither of them work.
  Can anybody help?</p>
  
  <p>Thank you in advance</p>