合并两个数据库的表后,漏掉了个东西,有个字段没有做相加,想写的MYSQL的语句处理下,发现报错该如何处理CREATE PROCEDURE COUNTVAS_POINT()
BEGIN
DECLARE accountid INT DEFAULT 1;
WHILE (accountid < 200000) DO
set accountid = accountid + 1;
DECLARE num INT;
DECLARE Vas INT;
DECLARE Min INT;
DECLARE Max INT;
SELECT Min=MIN(id),Max=MAX(id),num=COUNT(Account_ID),Vas=SUM(VAS_Point) FROM sk_vas_table WHERE Account_ID = accountid;
IF num = 2
UPDATE sk_vas_table SET VAS_Point = Vas WHERE id = Min and Account_ID = id;
DELETE FROM sk_vas_table WHERE id = Max and Account_ID = id;
END IF
END WHILE
ENDmysql存储数据库
BEGIN
DECLARE accountid INT DEFAULT 1;
WHILE (accountid < 200000) DO
set accountid = accountid + 1;
DECLARE num INT;
DECLARE Vas INT;
DECLARE Min INT;
DECLARE Max INT;
SELECT Min=MIN(id),Max=MAX(id),num=COUNT(Account_ID),Vas=SUM(VAS_Point) FROM sk_vas_table WHERE Account_ID = accountid;
IF num = 2
UPDATE sk_vas_table SET VAS_Point = Vas WHERE id = Min and Account_ID = id;
DELETE FROM sk_vas_table WHERE id = Max and Account_ID = id;
END IF
END WHILE
ENDmysql存储数据库
IF num = 2 then
UPDATE sk_vas_table SET VAS_Point = Vas WHERE id = Min and Account_ID = id;
DELETE FROM sk_vas_table WHERE id = Max and Account_ID = id;
END IF ;
END WHILE;
DECLARE num INT;
DECLARE Vas INT;
DECLARE Min INT;
DECLARE Max INT;
放到DECLARE accountid INT DEFAULT 1;语句后面去,
BEGIN
DECLARE accountid INT DEFAULT 1;
DECLARE num INT;
DECLARE Vas INT;
DECLARE Min INT;
DECLARE Max INT; WHILE (accountid < 200000) DO
set accountid = accountid + 1; SELECT Min=MIN(id),Max=MAX(id),num=COUNT(Account_ID),Vas=SUM(VAS_Point) FROM sk_vas_table WHERE Account_ID = accountid; IF num = 2
UPDATE sk_vas_table SET VAS_Point = Vas WHERE id = Min and Account_ID = accountid;
DELETE FROM sk_vas_table WHERE id = Max and Account_ID = accountid;
END IF
END WHILE
END提示第15行报错:
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to you MySQL server version for the right syntax to use near 'UPDATE sk_vas_table SET VAS_Point = Vas WHERE id = Min and Account_ID = accounti' at line 15
IF search_condition THEN statement_list
[ELSEIF search_condition THEN statement_list] ...
[ELSE statement_list]
END IF
THEN关键字哪去了?
BEGIN
DECLARE MinAcc INT;
DECLARE MaxAcc INT;
DECLARE accountid INT;
DECLARE num INT;
DECLARE Vas INT;
DECLARE Min INT;
DECLARE Max INT;
SELECT MinAcc=MIN(ID),MaxAcc=MAX(ID) FROM sk_vas_table;
SET accountid = MinAcc - 1; WHILE (accountid < MaxAcc ) DO
set accountid = accountid + 1; SELECT Min=MIN(id),Max=MAX(id),num=COUNT(Account_ID),Vas=SUM(VAS_Point) FROM sk_vas_table WHERE Account_ID = accountid; IF num = 2 THEN
UPDATE sk_vas_table SET VAS_Point = Vas WHERE id = Min and Account_ID = accountid;
DELETE FROM sk_vas_table WHERE id = Max and Account_ID = accountid;
END IF;
END WHILE;
END
1.MYSQL语句必须加‘;’
2.IF 后面需要有THEN