各位大蝦好﹗
有表如下﹐
create table tb_fittz
(
  fitts_no           varchar2(4)          not null, //配件
  fitt_no            varchar2(4)          not null, //配件 
  fitt_qty           number(2)            not null, //數量 
  constraint Pk_tb_fittzz primary key (fitts_no,fitt_no)

不知以下的計算數量的SQL語句如何寫﹐隨便輸入一個配件﹐我想得到這個配件是中那些配件組成﹐(包括它的直接組成配件﹐還有間接組成配件﹐也就是它的子配件﹐子子配件﹐子子子配件 ﹐....組成數量)
如﹐配件1 是由配件2﹐3﹐4組成
    配件2 是由配件3﹐4﹐5組成
    配件5 配件6﹐7﹐組成表中數擾為
1  ﹐ 2  ﹐ 2
1  ﹐ 3  ﹐ 2
1  ﹐ 4  ﹐ 1
2  ﹐ 3  ﹐ 2
2  ﹐ 4  ﹐ 2
2  ﹐ 5  ﹐ 3
5  ﹐ 6  ﹐ 1
5  ﹐ 7  ﹐ 2 
如果是配件1
  2  ,  2
  3  ,  6
  4  ,  5
  5  ,  6
  6  ,  6
  7  ,  12如果是配件2
  3  ,  2 
  4  ,  2
  5  ,  3
  6  ,  3
  7  ,  6  如果是配件5
  6   ,  1
  7   ,  2 
 請問這么樣的SQL語句怎么寫﹐是寫函數好﹐還是寫過程好﹐ 請幫幫忙﹗ 謝謝大家了﹐ 

解决方案 »

  1.   

    對了
    表中數擾為
    fitts_no , fitt_no,  fitt_qty   
    1  ﹐ 2  ﹐ 2
    1  ﹐ 3  ﹐ 2
    1  ﹐ 4  ﹐ 1
    2  ﹐ 3  ﹐ 2
    2  ﹐ 4  ﹐ 2
    2  ﹐ 5  ﹐ 3
    5  ﹐ 6  ﹐ 1
    5  ﹐ 7  ﹐ 2 fitt_no,  fitt_qty   
    如果是配件1
      2  ,  2
      3  ,  6
      4  ,  5
      5  ,  6
      6  ,  6
      7  ,  12如果是配件2
      3  ,  2 
      4  ,  2
      5  ,  3
      6  ,  3
      7  ,  6  如果是配件5
      6   ,  1
      7   ,  2
      

  2.   

    select * 
    from tb_fittz t
    start with t.fitts_no = 1   --2 ,5 
    connect by fitts_no = prior fitt_no
      

  3.   

    select * from tb_fittz start with fitts_no='1' connect by prior fitts_no=fitts_no;
      

  4.   

    select * from tb_fittz start with fitts_no='1' connect by prior fitts_no=fitt_no;
    晚了 :)
      

  5.   

    yaozw_mountain(山林)   bzszp(SongZip) ( ) 
      先謝謝倆位﹐但結果不對﹐他并沒有把相應的陪數乘出來 ﹐再把相同的配件相加﹐
      

  6.   


    yaozw_mountain(山林)   bzszp(SongZip) ( ) select fitts_no ,fitt_no, nvl(prior fitt_qty ,1) * fitt_qty as fitt_qty 
    from tb_fittzs t
    start with t.fitts_no ='1' 
    connect by  fitts_no = prior fitt_no我用這樣一條語句。但它只計算相鄰的兩個乘起來﹐﹐而不能累乘﹐要累乘要怎么辦﹐
    也就是要出現這樣的一個結果
    如果是配件1
      2  ,  2
      3  ,  6
      4  ,  5
      5  ,  6
      6  ,  6
      7  ,  12
    ;
      

  7.   

    ?
    再 group by 一下不行么?
    累乘 看来需要自己写个函数了。
      

  8.   

    bzszp(SongZip) 你好﹗請問這樣的函數怎么寫﹐
    我寫了几個多不行﹐實在是沒有辦法了﹐麻煩你幫我一下﹐
    謝謝了﹗