8-計算裝置的所有零件數量
阿新 • • 發佈:2021-02-07
資料程式碼:
with t1 as
(
select '房間' as product,'桌子' as fitting,2 as num from dual
union all
select '房間','椅子',3 from dual
union all
select '房間','鏡子',3 from dual
union all
select '桌子','木頭塊',5 from dual
union all
select '鏡子','木頭塊',5 from dual
union all
select '桌子','螺絲',6 from dual
union all
select '桌子','螺絲帽',8 from dual
union all
select '椅子','整個木頭',6 from dual
union all
select '椅子','螺絲',2 from dual
union all
select '整個木頭','木頭塊',3 from dual
union all
select '木頭塊','小木頭塊',2 from dual
union all
select '小鐵片','釘子',2 from dual
union all
select '小鐵片','鋁片',3 from dual
union all
select '螺絲' ,'大鐵片',10 from dual
union all
select '螺絲','中鐵片',10 from dual
union all
select '螺絲','小鐵片',10 from dual
)
下面是答案程式碼:
cte(product,fitting,num) as
(
select product,fitting ,num from t1 where product = '房間'
union all
select t.product,t.fitting,t.num*c.num as num
from t1 t inner join cte c on c.fitting = t.product
)
select fitting,sum(num) from cte group by fitting
執行結果: