搜索重叠记录

时间:2016-01-17 13:47:27

标签: sql oracle

Example 我在以下结构中有一些数据

  

表项目

>POOL ID    ITEM ID PARENT ID   SENIORITY   AMOUNT
>1          S1                              100000
>1          S2                              100000
>1          B1                              100000
>1          B2                              100000
>1          C1      S1              4       10000
>1          C2      S1              3       10000
>1          C3      S2              2       10000
>1          C4      S2              1       10000
>1          C5      S2              1       10000
  

表项目地图

ITEM ID     MAPPED ITEM ID
C1          B1
C2          B1
C3          B1
C4          B1
C5          B2
C4          B2
C3          B2

我的目标是 1.找到' S'最高级项目的父项目(1 - 最高资历) 2.找到B项,使得并非S项的所有子项都映射到另一个表中的B项 3.从S和B项目中减去重叠项目的数量。

参见图片以供参考。 S2拥有最高的资历。 B1部分映射到S2。 B2完全映射到S2。在这种情况下,我们取B1并从S2和B1的量中减去C3和C4的量。

实现目标的查询结构应该是什么?

0 个答案:

没有答案