SQL Server 怎样根据公式字段结合变量表来计算出结果,请见详细需求描述

comcyd 2015-12-23 11:40:58
一、有一个物料表A:
A01 (唯一编号) A02 (公式) A03(结果)
------------------------------------------------------------------------------------
p001 W-M-N-39
p002 (L+W)-350
p003 (W-72)+(865-86)
p004 H-29
...

二、同时有一个公式字母(26个字母)参数表B:
B01(字母) B02(数值)
-----------------------------------------
A 10
B 200
C 35
... ...
H 1850
L 900
M 650
N 400
W 1200
...


-------需求及解释-----------------------------
1、现在要计算出A03字段的值:原理是-->> 根据表A里A02的公式结合【字母参数表B】里对应的的数值替换后再计算出A03字段的值
2、A02的公式都是符合规范的公式:只会有括号,加减乘除(+,-,*,/)四种运算符号
3、A02公式里的字母都能在B表里找到对应的数值替换

-----示例:最后得到如下结果:---------------------------------------
A01 (唯一编号) A02 (公式) A03(结果)
------------------------------------------------------------------------------------
p001 W-M-N-39 111 通过 1200-650-400-39 计算出
p002 (L+W)-350 1750 通过 (900+1200)-350 计算出
p003 (W-72)+(865-86) 1907 通过(1200-72)+(865-86) 计算出
p004 H-29 1821 通过1850-29 计算出
...

请教一下各位用什么好的解决方案处理?效率要高,对执行效率有一定有要求,谢谢!
...全文
529 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
comcyd 2016-01-02
  • 打赏
  • 举报
回复
好像也没什么捷径,都沉了。。。
comcyd 2015-12-23
  • 打赏
  • 举报
回复
引用 1 楼 中国风的回复:
应该用一个本栏位记录1200-650-400-39 字符,别临时再转换 或在保存时直接通常程序计算并保存A3结果
确实,应该加一个记录表达式的栏位,主要是替换那些字母难处理,还没有合适的方法
中国风 2015-12-23
  • 打赏
  • 举报
回复
利用sp_OA系列存儲過程,處理數學公式結果 http://blog.csdn.net/roy_88/article/details/6292123
中国风 2015-12-23
  • 打赏
  • 举报
回复
应该用一个本栏位记录1200-650-400-39 字符,别临时再转换 或在保存时直接通常程序计算并保存A3结果
卖水果的net 2015-12-23
  • 打赏
  • 举报
回复
感觉应该使用 cursor 和动态 SQL 实现。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧