我正在尝试:
将@loop_start_date
之间的所有值打印到@loop_end_dateloop_start_date
此处应增加1,直到loop_start_date=loop_end_date
我在下面试过了,但是Mysql说
#1064 - You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right
syntax to use near 'BEGIN Declare @user_id int' at line 3
以下是过程代码
CREATE PROCEDURE generatePayscale
BEGIN
Declare @user_id int;
Declare @office_id int;
Declare @loop_start_date Date;
Declare @loop_end_date Date;
SET @user_id = 1287;
SET @office_id = 8;
SET @loop_start_date = '2018-06-02';
SET @loop_end_date = '2018-06-06';
WHILE(@loop_start_date < @loop_end_date) do
SELECT old_paysetupid
FROM personneltransfer personnelid=@user_id
AND pt.transferdate>@loop_start_date
END WHILE;
END
发布于 2018-06-19 04:17:42
这可能会给你指明正确的方向,我会改变一些事情。添加了BEGIN
。然后为每个var添加了声明。然后,在from之后需要一个where
SET @user_id = 1287;
SET @office_id = 8;
SET @loop_start_date = '2018-06-02';
SET @loop_end_date = '2018-06-06';
WHILE(@loop_start_date < @loop_end_date) do
BEGIN
SELECT old_paysetupid
FROM personneltransfer where personnelid=@user_id
and pt.transferdate>@loop_start_date
END WHILE;
https://stackoverflow.com/questions/50916767
复制相似问题