mysql 自定义函数如何返回多个值
createfunctiongoodc(productIdvarchar(10),)/*返回生产量,销售量,销售总金额*/returnsint,int,doublebeg...
create function goodc(
productId varchar(10),
)
/*返回 生产量,销售量,销售总金额*/
returns int,int,double
begin
declare production int;/*生产量*/
declare sellnum int;/*销售量*/
declare sumprice double;/*总额*/
set production = 0;
set sellnum = 0;
set sumprice =0.0;
/*生产量*/
select sum(productstockinfo.num) into @production from productstockinfo where pro_id=productId;
/*销售量,销售金额*/
select sum(productoutinfo.num) into @sellnum from productoutinfo where prod_id=productId;
return @production,@sellnum,@sumprice;
end;
这个函数有何语法错误
返回数组是不行的,返回值的类型都不是一样的,要么就返回一个临时表,但是我查出来的只有一列数据,也就是只有三个值,我不想要返回一个临时表,艾,不知怎么才能返回int,int,double三个值 展开
productId varchar(10),
)
/*返回 生产量,销售量,销售总金额*/
returns int,int,double
begin
declare production int;/*生产量*/
declare sellnum int;/*销售量*/
declare sumprice double;/*总额*/
set production = 0;
set sellnum = 0;
set sumprice =0.0;
/*生产量*/
select sum(productstockinfo.num) into @production from productstockinfo where pro_id=productId;
/*销售量,销售金额*/
select sum(productoutinfo.num) into @sellnum from productoutinfo where prod_id=productId;
return @production,@sellnum,@sumprice;
end;
这个函数有何语法错误
返回数组是不行的,返回值的类型都不是一样的,要么就返回一个临时表,但是我查出来的只有一列数据,也就是只有三个值,我不想要返回一个临时表,艾,不知怎么才能返回int,int,double三个值 展开
5个回答
展开全部
用存储过程算了,函数不能返回一个值,如果要返回多值的话,那就返回一个table,用存储过程同样能达到效果
CREATE PROCEDURE `goodcheck`(
in xxx int
in xxx
...
out xxx ..
out xxx char
)
begin
select sum(productstockinfo.num) into production from productstockinfo where pro_id=productId;
end;
CREATE PROCEDURE `goodcheck`(
in xxx int
in xxx
...
out xxx ..
out xxx char
)
begin
select sum(productstockinfo.num) into production from productstockinfo where pro_id=productId;
end;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果返回多个值不行 你就返回一个 rowid
行值就行了啊
根据这个值 然后 在操作数据库 取得你需要的3个值就行了
行值就行了啊
根据这个值 然后 在操作数据库 取得你需要的3个值就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
返回一个数组可以不。。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询