我必须开发一个系统,用户将在其中指定一个起始范围和一个结束范围(通过范围,我的意思是说一个特定的时期,其中PERIOD 作为 YEAR AND MONTH 的串联给出)。例如,PERIOD = 201304,其中 2013 是用户输入的年份,04 是月份。用户最多只能指定 2 年的最大范围。
需要根据用户输入的范围来选择数据。问题是每当我尝试遍历该期间时,PERIOD 在 201312 到 201313 之后发生变化。我为用户选择的年份和月份(start_year、start_month、end_year、end_month)设置了单独的变量
我在那里做了一个 IF 循环,在其中我尝试执行以下操作
FOR p_tmpyear = p_tempfrom TO p_tempto
IF (p_monthfrm < 12) THEN
LET p_yearfrm = p_yearfrm + 1
LET p_monthfrm = 01
LET p_fromperiod = p_yearfrm + 1,p_monthfrm >p_fromperiod is an integer storing concatenated Month and Year, to achieve the desired PERIOD format as mentioned above.
LET p_tempfrom = p_fromperiod
END IF
DISPLAY p_tmpyear
END FOR
我什至试过这个:
如果(p_fromperiod MOD p_yearfrm = 13)那么
LET p_yearfrm = p_yearfrm + 1
LET p_monthfrm = 01
LET p_fromperiod = p_yearfrm + 1,p_monthfrm
到达 201212 到 201213 后,周期仍然会发生变化。我希望这是 201301。请帮忙。