0
안녕하세요 저장 프로 시저에서 루프를 실행하려고 어디에 date(curr_date)
기반으로 선택 쿼리에서 값의 합계를 얻을. query(curr_date)
을 선택하여 날짜 열을 반복해야합니다. 내가 직면하고있는 문제는 내가 while 루프를 실행할 때 데이터베이스의 날짜에 대한 첫 번째 항목 만 가져옵니다.Mysql 저장 프로 시저
다음과 같이 내 MySQL의 저장 프로 시저는 다음 코드로
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
을 평균으로 돌아 while 테스트를하기 전에 curr_date를 '2016-10-08'로 설정하면 같은 날짜를 테스트 할 수 있습니까? –