1个回答
展开全部
这是前4天的平均值,这个update语句不太好写呀,感觉你这个表设计有点问题
select avg(albvalue) from tablename where date between date_sub(date, interval 4 day) and date;
select avg(albvalue) from tablename where date between date_sub(date, interval 4 day) and date;
更多追问追答
追问
这个恐怕一条sql不得行,能不能写个存储过程,把计算结果更新到ma5中
追答
有点乱,你自己看哈
declare not_exists int default 0;
declare $id int;
declare $phone varchar(50);
DECLARE $_error INT DEFAULT 0;
#定义游标接受表查询数据
declare cur1 cursor for select id,avg(phone) as ph from ht_user u
where create_date between date_sub(create_date, interval 30 day) and create_date group by id;
/**********sql查询结果异常处理**********/
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET $_error=1;
declare continue handler for not found set not_exists=1;
/*************外部参数赋值**************/
/***************开始事务****************/
#读取表中的数据循环输出
open cur1;
while(not_exists!=1) do
fetch from cur1 into $id,$phone;
update ht_user t set t.test = $phone where id = $id;
end while;
close cur1;
#2 报错处理
if($_error=1) then
rollback;
else
commit;
end if;
select $_error as errorCode;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询