gpt4 book ai didi

mysql - 无法创建过程Mysql

转载 作者:行者123 更新时间:2023-11-29 03:03:08 25 4
gpt4 key购买 nike

我已经很困惑了,所以我想在这里问一下如何使用以下代码在 mysql 中创建一个存储过程:

DELIMITER $$
CREATE PROCEDURE hitung_nilai_stok(sisa INT)

BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE jumlah DECIMAL;
DECLARE harga INT;
DECLARE nilai_stok INT DEFAULT 0;
DECLARE selisih DECIMAL DEFAULT 0.000;
DECLARE data_stok CURSOR FOR SELECT
Stok.masuk,
Stok.harga_masuk

FROM stoks Stok
WHERE Stok.barang_id = 1
AND Stok.tanggal <= '2013-11-19';

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

TRUNCATE TABLE transaksi;

SET selisih = sisa;
OPEN data_stok;

loop_data: LOOP
FETCH data_stok INTO jumlah, harga;
SET selisih = selisih - jumlah;

IF done THEN
LEAVE loop_data;
END IF;

IF (selisih = 0.000) THEN
INSERT INTO transaksi VALUES (jumlah,harga);
ELSE IF (selisih > 0.000) THEN
SET selisih = selisih;
INSERT INTO transaksi VALUES (jumlah,harga);
ELSE IF (selisih < 0.000) THEN
INSERT INTO transaksi VALUES (selisih,harga);
SET done = TRUE;
END IF;
END LOOP loop_data;

CLOSE data_stok;

SELECT SUM(jumlah*harga) FROM transaksi;

END$$

DELIMITER ;

我得到的错误是:

#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 'LOOP loop_data; CLOSE data_stok; SELECT SUM(jumlah*harga) INTO nilai_stok FR' at line 49

好吧,当我删除这些行时:

ELSE IF (selisih > 0.000) THEN
SET selisih = selisih;
INSERT INTO transaksi VALUES (jumlah,harga);
ELSE IF (selisih < 0.000) THEN
INSERT INTO transaksi VALUES (selisih,harga);
SET done = TRUE;

执行成功。那么,是什么导致了错误的发生呢?有人可以提供一些线索吗?

最佳答案

你的ELSE IF不对,应该是ELSEIF在一起

试试这个

IF (selisih = 0.000) THEN
INSERT INTO transaksi VALUES (jumlah,harga);
ELSEIF (selisih > 0.000) THEN
SET selisih = selisih;
INSERT INTO transaksi VALUES (jumlah,harga);
ELSEIF (selisih < 0.000) THEN
INSERT INTO transaksi VALUES (selisih,harga);
SET done = TRUE;
END IF;

关于mysql - 无法创建过程Mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20069310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com