1.
表:TABLE1
clm1 clm2 clm3 clum4 balance
------------------------------
A B C D 100.00现在有如上一组数据,现在要根据字段clm1,clm2,clm3,clm4的不同组合,返回不同的比例数据,得到数据如下。
clm1 clm2 clm3 clum4 balance1 balance2 balance3 balance4
------------------------------
A B C D 100.00*10% 100.00*30% 100.00*70% 100.00*50%2.
我写了个FUNCTION FUNC_A用于根据clm1 clm2 clm3 clum4的不通过组合,返回比例10%,30%,70%,50%
SQL如下:
select
clm1,
clm2,
clm3,
clum4,
balance*FUNC_A(clm1,clm2,clm3,clum4,1) balance1,
balance*FUNC_A(clm1,clm2,clm3,clum4,2) balance2,
balance*FUNC_A(clm1,clm2,clm3,clum4,3) balance3,
balance*FUNC_A(clm1,clm2,clm3,clum4,4) balance4
FROM TABLE1此处使用了4次FUNCIION,能否只使用1次?,
另,FUNCITON内部处理较多,不能使用CASE WHEN 方法解决。请大家帮忙看看。
表:TABLE1
clm1 clm2 clm3 clum4 balance
------------------------------
A B C D 100.00现在有如上一组数据,现在要根据字段clm1,clm2,clm3,clm4的不同组合,返回不同的比例数据,得到数据如下。
clm1 clm2 clm3 clum4 balance1 balance2 balance3 balance4
------------------------------
A B C D 100.00*10% 100.00*30% 100.00*70% 100.00*50%2.
我写了个FUNCTION FUNC_A用于根据clm1 clm2 clm3 clum4的不通过组合,返回比例10%,30%,70%,50%
SQL如下:
select
clm1,
clm2,
clm3,
clum4,
balance*FUNC_A(clm1,clm2,clm3,clum4,1) balance1,
balance*FUNC_A(clm1,clm2,clm3,clum4,2) balance2,
balance*FUNC_A(clm1,clm2,clm3,clum4,3) balance3,
balance*FUNC_A(clm1,clm2,clm3,clum4,4) balance4
FROM TABLE1此处使用了4次FUNCIION,能否只使用1次?,
另,FUNCITON内部处理较多,不能使用CASE WHEN 方法解决。请大家帮忙看看。
/
你可以通过存储过程返回多个,但是不能在SQL中直接调用
逐个调用方法,返回4个比率,然后乘比例,得到结果数据,
但是,我担心,游标效率问题,因为数据量基数比较大。