首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql存储过程

Mysql存储过程
EN

Stack Overflow用户
提问于 2016-12-12 13:11:22
回答 1查看 89关注 0票数 0

您好,我正在尝试在存储过程中运行一个循环,在其中,我根据date(curr_date)从select查询中获得值的总和。我需要在select query(curr_date)中循环date列。我面临的问题是,当我运行while循环时,它只从数据库中获取日期的第一个条目。

我的Mysql存储过程如下:

代码语言:javascript
复制
CREATE PROCEDURE `paf_calculation`(out avg_sum1 float(15,3))
BEGIN
    DECLARE day_count int;
    DECLARE extra_days int;
    DECLARE lookup_weeks int;
    DECLARE week_days INT;
    DECLARE count decimal;
    DECLARE datapoints int;
    DECLARE start_date date;
    DECLARE previous_days date; 
    DECLARE sum_extra_days float(15,3);
    DECLARE roid int;
    DECLARE historylookup_weeks int;    
    DECLARE avg_sum float;
    DECLARE i int;
    DECLARE curr_date date;

    set i = 0;
    SET WEEK_DAYS = 7;

    Set count = 0.5;



    select datediff('2016-10-10','2016-10-7') into historylookup_weeks;


    /** counts the number of days from the current week start and end days */
    select datediff('2016-10-10','2016-10-7') into day_count;

    /**No of extra days if the current week is more or less than 7 */
    SET extra_days = day_count - WEEK_DAYS;

    /**calculates the date 56 days from the current start week date */
    select date_sub('2016-10-17',interval 56 day) into previous_days ;

    /**calculates the datapoints*/ 
    set avg_sum1=0;

    Set datapoints = day_count * lookup_weeks; 
    set i = 0;

    set curr_date = '2016-10-08'; 


    while curr_date < '2016-10-17' do
    SELECT SUM(actual_volume) into avg_sum FROM volume_trackers WHERE (date_inserted between '2016-08-23' AND '2016-10-17') AND (day_of_week in (dayofweek(curr_date))) and (ro_id=13);
    set curr_date=date_add(curr_date,interval 1 day);
    set avg_sum1=avg_sum+avg_sum1;
    END WHILE;  

END
EN

回答 1

Stack Overflow用户

发布于 2016-12-13 17:54:30

您的查询看起来确实像编码一样循环,但我会修改sum_avg1计算,以允许将空值返回到平均和

代码语言:javascript
复制
set avg_sum1=coalesce(avg_sum,0) + avg_sum1;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41094537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档