各位大蝦好﹗
有表如下﹐
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語句怎么寫﹐是寫函數好﹐還是寫過程好﹐ 請幫幫忙﹗ 謝謝大家了﹐
表中數擾為
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
from tb_fittz t
start with t.fitts_no = 1 --2 ,5
connect by fitts_no = prior fitt_no
晚了 :)
先謝謝倆位﹐但結果不對﹐他并沒有把相應的陪數乘出來 ﹐再把相同的配件相加﹐
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
;
再 group by 一下不行么?
累乘 看来需要自己写个函数了。
我寫了几個多不行﹐實在是沒有辦法了﹐麻煩你幫我一下﹐
謝謝了﹗