用Sql实现,要效率高的。请大家帮忙
表T1(记录的是产品加工步骤的损耗情况)
Cp_No(产品编码) Cp_Step(加工步骤) Cp_Shl(损耗率)
001 1 0.1
001 2 0.15
001 3 0.2
002 1 0.3
002 2 0.15
003 ... ...
表T2(记录产品经过加工步骤的最终数量)
Cp_No(产品编码) finally_Sl(最终数量)
001 5
002 7
... ...
要求:
根据T2表提供的最终数量以及T1表提供的损耗率,算出每个加工步骤的实际数量得到表T3
Cp_No(产品编码) Cp_Step(加工步骤) Real_Sl(实际数量)
001 1 7.35/(1-0.1) =8.17
001 2 6.25/(1-0.15)=7.35
001 3 5/(1-0.2) =6.25
002 1 8.24/(1-0.3) =11.77
002 2 7/(1-0.15) =8.24
Cp_No是Varchar,Cp_Step是int,Cp_Shl是Numeric(18,4),Finally_Sl,Real_Sl是Numeric(18,4)
T2中的Finally_Sl 是经过T1中的所有加工步骤最终要得到的数量,比如001产品经过1,2,3三个步骤的最终数量是5。T3中的Real_Sl是由Finally_Sl根据每个加工步骤的损耗率得到,比如001由最终数量5可以得到步骤3的实际数量:5/(1-0.2)=6.25,然后根据6.25得到步骤2的实际数量6.25/(1-0.15)=7.35