如何利用sql实现EXCEL中lookup函数的功能
在excel中进行数值分析时候经常采用lookup进行查询匹配,例如hdm表中第一列桩号(1,2,3,4,5,6)第二列kr(A,B,C,D,E,F) 则cal2表中计算2.2对应的值时,应返回小于2.2的最大值,即2对应的列值为B,请问在sql中如何实现,我写了一个sql语句,但是运行非常慢
在access中
DoCmd.RunSQL "update cal2 as t1 left join hdm as t2 on t1.起点>=t2.桩号set t1.K=t2.kr" ‘运行了12秒
DoCmd.RunSQL "update cal2 as t1 left join hdm as t2 on t1.起点 =t2.桩号set t1.K=t2.kr" ’运行了0.48秒
补充说明
左侧为A表 右侧为B表,已知起点,求K,在excel中用=LOOKUP(I9,$F$9:$F$15,$G$9:$G$15)函数 一拖就出来了,可是在access中却需要12秒
补充说明2:
现在A表中已知n(6000)个点的坐标,在B表中已知m(4000)多个点的X坐标,要求其Y坐标,根据线性代数y=kx+b,我在A表中已经计算了每个点对应的K和B,现在在b表中计算已知点的斜率,即线性插入值的y坐标
你也可以理解为根据用电量查询用电的单价,单价是阶梯单价
[此贴子已经被作者于2016-7-10 07:53编辑过]