这问题很简单  但是我不会   呜呜
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.   

    最后一句 return @ruku就行了。自定义的分三种函数
    返回一般值的就是你这种 returns float
    返回表的 returns table   return (select * from tb)
    还有一种多语句的表值函数 returns @tb table(sdfdsfds) 最后  
      

  2.   

    create funcation fun_test(@a int)
    returns varchar(100)
    begin
    ..
    end