现有计划表KEI_COM_FU001 
字段  KEIID        计划ID
      KANID       工程ID
KOJOCODE   工厂
      YOKO        预项
      BUMON       部门
      SURYOU       数量
      SURYOU_TANNI  数量单位
      PRE_ID            前计划ID
      AFT_ID            后计划ID
KEIID   KANID   KOJOCODE   YOKO  BUMON     SURYOU      SURYOU_TANNI        PRE_ID              AFT_ID   
FU01      裁剪        A           2        3            100              枚                                         FU02
FU02      涂刷        A           2        3             50              KG                  FU02                 FU04
FU04      粘贴        A           2        3            100              枚                   FU02                 FU05
FU05      切割        A           2        3            100              枚                   FU04                 FU06
FU06      钉合        A           2        3            80               枚                   FU05                 FU07
……
FU13      刻印        A           2        3            100              枚                   FU12                 FU14
……
FU20      检查        A           2        3             20              枚                   FU19                 现知道A工厂2预项3部门  正在做的工程,例如“涂刷”我想找到几个工程后的“钉合”处理的数量是多少,然后最后一个工程“检查”处理的数量是多少。其中工程的顺序是不固定的,有些也许就没有“钉合”这个工程,写语句的时候麻烦把条件带上,上次那个递归我试了好久呢。
头疼啊头疼,谁有没有Oracle递推和递归的基础教程,给发一份?[email protected],万分感谢

解决方案 »

  1.   

    还和上次的方法一样啊
    先connect by ... start with把'涂刷'以后的所有KANID和SURYOU找到,
    然后select SURYOU from (查到的结果) where KANID=“检查”,
        select SURYOU from (查到的结果) where KANID=“钉合”,没记录就是没有啊
      

  2.   

    CRYing,上次方法就是我照着抄的,根本没看明白:(
      

  3.   

    select SURYOU  from (select KANID,SURYOU from KEI_COM_FU001 connect by prior AFT_ID=KEIID start with KANID='涂刷') a where a.KANID='检查'select SURYOU  from (select KANID,SURYOU from KEI_COM_FU001 connect by prior AFT_ID=KEIID start with KANID='涂刷') a where a.KANID='钉合'