select a/2+b/2 as c  from table

解决方案 »

  1.   

    PB没有宏替换,如果公式不多,可以改成函数试试,或者写一个通用函数来包括绝大多数的公式。如:m1:(@a+@b)/2,  m2:(@b*@c)/2
    function f_name(long a,long b,log c)
    if 公式名=m1 then f_name(100,200,0)=150
    if 公式名=m2 then f_name(0,30,20)=300
      

  2.   

    我就用我说的这种方法作过,不管是什么公式都可以。
    SQL是支持字符串累加。
      

  3.   

    TO luhongjun(过江项羽) ,普通用户会使用SQL语句?程序员失业了!
      

  4.   

    to ming() 
    只要变量总数和类型可以固定,在函数中可以操作公式表的记录,对公式进行分析吗。
      

  5.   

    tmx(林欢儿):
    谁说普通用户使用SQL了.
    例如你可以让他录入公式假如为S="a+b*a-b/a+a*b"
    你的SQL="select "+S+"from table"
      

  6.   

    to tmx
    是的,但是不知道如何将这些变量宏替换成数值,然后运算
      

  7.   

    1.不要求
    2.无
    3.否
    4.是,都是real
      

  8.   

    可以使用sp_executesql, 但要求公式中变量名前加'@', 变量名、变量数量固定。
    如果变量名、变量数量不固定,至少需要事先知道。
      

  9.   

    to nononono
    sql_executesql 中的变量是否可以回传
      

  10.   

    我对你这个想法感到有些不可想象!真的!很佩服你的想法!
    不过我有一个方法!可以完成你的要求!
    就是用动态的sql!
    第一 你的目的如果是要动态的改变表达式!我的方法可以!
    第二 你的目的主要是对数据库的操作我的方法也可以!
    第三 你的变量要用字段代替!
    例如 表1 k a int b int 
            12    4
            8     9
    (说明:k是表名)
    表2 m tablename varchar(10) jisuan varchar(10)
            k                   (a+b)/2
    (说明:m是表名)
    select @jisuan=jisuan from m where tablename='k'
    Select @sql='select a,b,' +@jisuan+' from k'
    exec(@sql)
      

  11.   

    to ww1007
    您的想法让我开阔了思路,非常感谢,但是我的这些数据都是临时的
    没有必要放到数据库,我已经用sp_executesql完成了计算,但是
    在中间变量的传递上不太如意,因为我才刚开始接触sql。
    比如,你上面的select @jisuan=jisuan from m where tablename='k'句子
    当我使用sp_executesql时,类似@jisuan这样的变量如何传递出来呢?
      

  12.   

    sql_executesql 中的变量是否可以回传?
    没有查到相关的说明,但按照存储过程的参数定义形式, 哈哈~~~~!!!如下:declare @css nchar(100), @bb intselect @bb = 29select @css = N'select @c = (@a+@b)/2'exec sp_executesql @css, N'@a int, @b int, @c int output', 10, 29, @bb outputselect @bb as bb
      

  13.   

    to :nononono(null,null) 
    我没有话了
      

  14.   

    declare @cmd varchar(8000)
    select @cmd = a where b = '...'
    replace(@CMD, '@a' , '...')
    replace(@CMD, '@b' , '...')
      

  15.   

    to nononono:
    非常感谢,我已经完成了。