ORA-DB - 如何检索表中不存在的数据

时间:2011-12-14 05:28:22

标签: sql oracle

我的下表包含一些示例数据:

|| Filename || receiving_site || originating_site ||
| fileA | siteA | HQ |
| fileA | siteA | siteA |
| fileB | siteA | HQ |
| fileA | siteB | HQ |
| fileA | siteB | siteB |
| fileB | siteB | HQ |
| fileB | siteB | siteB |

该表以这种方式运作:

  1. 对于每个“文件名”,如果“originating_site”不相同 “receiving_site”,表示该文件已被发送到 “receiving_site”但尚未收到确认。
  2. 对于每个“文件名”,如果“originating_site”与“receiving_site”相同,则表示该文件已由“receiving_site”发送和接收。
  3. 我的任务是列出已经发送但“receive_site”尚未收到的每个“receiving_site”的所有“文件名”。例如,根据上面的示例数据,我希望看到尚未收到siteA,fileB。

    我该怎么做?我曾尝试过MINUS和NOT EXISTS命令,但我无法得到我想要的结果。

1 个答案:

答案 0 :(得分:1)

(select filename, receiving_site
   from yourTable)
minus
(select filename, receiving_site
   from yourTable
where receiving_site = originating_site)

没有收到的数据的所有数据