这问题很简单 但是我不会 呜呜
CREATE FUNCTION GetJXCTJRuKu

@cpid int,
@tjrq datetime
)
RETURNS float
AS
BEGINdeclare @ruku floatselect @ruku=(select RuKuShuLiang,JinJia
 from dbo.RuKuMingXi
 where ShangHuChanPinID=@cpid and RuKuRiqi=@tjrq
)RETURN  
(
select @ruku
)
end上面是我建函数的代码 代码很简单 但是 报错:消息 116,级别 16,状态 1,过程 GetJXCTJRuKu,第 17 行
当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式。我发现是因为查询语句 查询了2个字段的原因 (我建了个只查询1个字段却成功了)   还有就是 我这段代码 如果你在系统数据库master运行的话 他能运行成功 但是用自己的数据库的话 就不行了

解决方案 »

  1.   

    select @ruku=(select RuKuShuLiang,JinJia
     from dbo.RuKuMingXi
     where ShangHuChanPinID=@cpid and RuKuRiqi=@tjrq这里选择了两个列 明显是错误的
      

  2.   

    CREATE FUNCTION GetJXCTJRuKu
    (  
    @cpid int,
    @tjrq datetime
    )
    RETURNS float
    AS
    BEGIN
    declare @ruku floatselect @ruku=RuKuShuLiang * JinJia
    from dbo.RuKuMingXi
    where ShangHuChanPinID=@cpid and RuKuRiqi=@tjrqRETURN @ruku
    END
      

  3.   


    我是要获得   RuKuShuLiang 和 JinJia  2个字段的值    而不是要他们积啊  
      该怎么改啊