存储过程动态取值和赋值问题
ERROR 1327 : Undeclared variable: b_column_value
t_id w_id bname 是从外面传入的
begin
/*基础变量声明*/
DECLARE u_id int;
DECLARE r_id int;
DECLARE t_year int;
DECLARE b_name varchar(255);
DECLARE b_baifen decimal(10,2);
DECLARE b_quan decimal(10,6);
DECLARE b_value int;
DECLARE b_min decimal(10,4);
DECLARE b_max decimal(10,4);
DECLARE b_column_name varchar(255);
DECLARE b_table_name varchar(255);
DECLARE b_column_value decimal(10,4);
DECLARE result decimal(10,6) default 0.000000;
DECLARE done int(10);
DECLARE cursor_name CURSOR FOR select bin_baifen,bin_quan,bin_value,min_value,max_value,bin_column_name,bin_table_name from jbfx_yinsu where bin_name=bname;
DECLARE continue handler for not found set done=1;
open cursor_name;
loop_label:LOOP
fetch cursor_name into b_baifen,b_quan,b_value,b_min,b_max,b_column_name,b_table_name;
if done =1 then
leave loop_label;
else
set @str = concat('select ',b_column_name,' into b_column_value from ',b_table_name,' where wenjuan_id =',w_id,' and tijian_id = ',t_id);
prepare stmt1 from @str;
execute stmt1;
deallocate prepare stmt1;
if b_value != null then
if b_value = b_column_value then
set result = result+b_baifen*b_quan;
end if;
elseif (b_min != null) AND (b_max != null) then
if (b_column_value>= b_min) AND (b_column_value < b_max) then
set result = result+b_baifen*b_quan;
end if;
end if;
end if;
END LOOP;
close cursor_name;
select result;
end
相关推荐
mysql 存储过程中变量的定义与赋值操作
一、变量的定义 mysql中变量定义用declare来定义一局部变量,该变量的使用范围只能在begin…end 块中使用,变量必须定义在复合语句的开头,并且是在其它语句之前,也可以同时申明多个变量,如果需要,可以使用default赋默认值。 定义一个变量语法如下: declare var_name[,…] type[default value]看一个变量定义实例 declare last date;二、mysql存储过程变量赋值 变量的赋值可直接赋值与查询赋值来操作,直接赋值可以用set来操作,可以是常量或表达式如果下 代码如下: set var_name= [,var_name expr]
layui 富文本赋值,取值,取纯文本值的实例
今天小编就为大家分享一篇layui 富文本赋值,取值,取纯文本值的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
sqlserver存储过程中SELECT 与 SET 对变量赋值的区别
SQL Server推荐使用 SET 而不是 SELECT 对变量进行赋值。当表达式返回一个值并对一个变量进行赋值时,推荐使用 SET 方法。下表列出 SET 与 SELECT 的区别。请特别注意红色部分。 set select 同时对多个变量同时赋值 不支持 支持 表达式返回多个值时 出错 将返回的最后一个值赋给变量 表达式未返回值 变量被赋null值 变量保持原值 下面以具体示例来说明问题:create table chinadba1(userid int ,addr varchar(128) )goinsert into chinadba1(userid,addr) v
VBA练习Split Excel取值赋值
VBA练习Split Excel取值赋值 For循环 数组上限下限LBound UBound
jquery操作select取值赋值与设置选中实例
本节内容: jquery实现select下拉框的取值与赋值,设置选中的方法大全。 比如<select class=”selector”></select> 1、设置value为pxx的项选中 $(“.selector”).val(“pxx”); 2、设置text为pxx的项选中 $(“.selector”).find(“option”).attr(“selected”,true); 这里有一个中括号的用法,中括号里的等号的前面是属性名称,不用加引号。 很多时候,中括号的运用可以使得逻辑变得很简单。 3、获取当前选中项的value $(“.selector”).val(); 4、获取当前



