存储过程中使用Sum(value),value是可变值,程序中该怎样定义value的类型呢?

解决方案 »

  1.   

    “可变值”是什么意思?
    只要你的Value是个数值型字段就可以用Sum求和。
      

  2.   

    根据要求的不同,Value是不同的列。
      

  3.   

    准确地说应该是Sum(fieldname),FieldName是可变的列。在程序中应该怎样定义FieldName的数据类型,才能向存储过程传递此参数?
      

  4.   

    SQL Server:
    declare @sum Float,
            @FieldName VarChar(20),
            @sql NVarChar(200)
      select @FieldName = 'Field1'
      select @sql = N'select @sum1=SUM(@FieldName1) from tablename'
      execute sp_executesql @sql,N'@sum1 Float Output,@FieldName1',@sum Output,@FieldName
    print '@Sum='+Convert(varchar,@sum)
      

  5.   

    我是用TStoreProc控件,
    Parameters.ParamByname('@fieldname').value:=FieldName,在存储过程中有select Sum(@FieldName) from tablename,我现在就是不知道这个FieldName在Delphi程序中该如何定义它的类型。
      

  6.   

    怎样使FieldName传递到存储过程时解释为列名呢?
      

  7.   

    genphone_ru(改行去学VC)讲得很清楚了.
    @Fieldname 这个变量就是你传的动态参数值。
      

  8.   

    还是贴代码吧,象这样的应该怎么写,我不知道该怎么处理单引号了,CREATE PROCEDURE sp_ZhsfCount @TimeRangeB datetime,@TimeRangeE DATETIME,@ysfy int/*应收费用*/,@ssfy/*实收费用*/ int
    AS
    select '差额' as '收费类别',sum(@ysfy)-sum(@ssfy) as '数值'
    from zhsfb 
    union
    select '实收',sum(@ssfy)
    from zhsfb 
    GO