例如有A表结构如下:加工代码      材料规格          面积
SH001        2.0/镀锌钢板     0.5
SH002        1.5/镀锌钢板     1.0想用SUM函数来求和:Sum(面积*Val(材料规格)),即取出对应项的材料规格值的数字,乘以面积后求和。
想用形如 Select Sum(面积*Val(材料规格)) From A 这样的语句,但在Sum中不能用Val函数。请教各位大虾,这样的情况下要解决求各问题有什么好方法?
谢谢!

解决方案 »

  1.   

    select sum(面积*cast(left(材料规格,2) as decimal) from A
      

  2.   

    select sum(面积*cast(left(材料规格,charindex('\' ,材料规格) - 1) as decimal) from A
      

  3.   

    Leftie 大虾,我这么的问题越说越复杂:)
    材料规格字段值的分隔符不一定是“/”或“\”,还有可能是“-”等的情况,那如何办呢?另外,问个相关的问题:在Sum中可以用Left,但不能用Val,怎么知道在Sum中可用哪些函数呢?
      

  4.   

    sqlserver的一般函数都可以用啊,不太清楚是否有那样从字段分离数字的函数,如果有希望能学习到,但觉得这样设计字段不好。
      

  5.   

    唉,如果能用Val函数就好解决的。
    但不知为什么这个函数不能在Sum中用,也不知道什么样的函数在Sum中可用或不可用?