【发布时间】:2015-08-17 01:37:39
【问题描述】:
这是我的函数查询:
DELIMITER $$
DROP FUNCTION IF EXISTS `dtkp`.`Tepat`$$
CREATE FUNCTION `dtkp`.`Tepat`(proses INT) RETURNS INT
BEGIN
DECLARE uid INTEGER;
DECLARE total_hari_kerja INTEGER;
DECLARE done INT DEFAULT FALSE;
SELECT total_hari_kerja = SUM (alokasi) FROM proses;
DECLARE krk_uid CURSOR FOR
SELECT DISTINCT krk FROM krk_kartu_kendali WHERE proses <= 8 ;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
CREATE TEMPORARY TABLE tempKK
(krk INT, terlambat INT) ENGINE=INNODB;
OPEN krk_uid;
tepatLoop:LOOP
FETCH krk_uid INTO uid;
IF done THEN
LEAVE tepatLoop;
END IF;
INSERT INTO tempKK
SELECT krk, GetTepat(realisasi_tgl_terima, total_hari_kerja) terlambat
FROM krk_kartu_kendali
WHERE proses=1
and krk=uid
ORDER BY RecID
LIMIT 1;
FETCH krk_uid INTO uid;
END LOOP;
CLOSE krk_uid;
DEALLOCATE krk_uid;
RETURN ;
END$$
DELIMITER ;
错误代码:1046
您的 sql 语法有错误:请查看与您的 Mysql 服务器版本相对应的手册,以在第 8 行的 '' 附近使用正确的语法
【问题讨论】:
-
你的选择语句错误应该是
SELECT SUM (alokasi) into total_hari_kerja FROM proses; -
@Sachu 第 8 行是“ DECLARE krk_uid CURSOR FOR SELECT DISTINCT krk FROM krk_kartu_kendali WHERE proses
-
你尝试改变 select 语句了吗?
-
@Sachu 完成了!!但“DECLARE krk_uid CURSOR FOR SELECT DISTINCT krk FROM krk_kartu_kendali WHERE proses
-
错误在说什么?
标签: mysql sql function error-code