0
テーブルからすべての価格を引き続き追加しようとしています。私は試しました n_total_price = n_total_price + d_price;MySQL - ストアドプロシージャ - whileループで最後のレコードを取得する
それは割り当てだ、私は、ストアドプロシージャ
を使用する必要がありますそれはちょうど私の最後のレコードあなただけの製品と `SELECT SUM(PRICE)を使用していないのはなぜ
DELIMITER $$
CREATE PROCEDURE P_TOTAL_PRICES(OUT N_TOTAL_PRICE DECIMAL(30,2))
BEGIN
DECLARE D_PRICE DECIMAL(30,2);
DECLARE ABC DECIMAL(30,2);
DECLARE FOUND BOOLEAN;
DECLARE CURSOR_1 CURSOR FOR SELECT PRICE FROM PRODUCT;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET FOUND = FALSE;
SET FOUND = TRUE;
OPEN CURSOR_1;
FETCH CURSOR_1 INTO ABC;
WHILE FOUND DO
SET N_TOTAL_PRICE = N_TOTAL_PRICE + D_PRICE;
FETCH CURSOR_1 INTO ABC;
END WHILE;
CLOSE CURSOR_1;
END; $$
を与えます'? – Barmar
ループの前に 'N_TOTAL_PRICE'を宣言し、' 0'に設定する必要があるかもしれません。それで 'SET N_TOTAL_PRICE = N_TOTAL_PRICE + D_PRICE'が動作するはずです。 – Barmar
@Barmarとして、1行で何ができるかについて20行ほど書いています。 – e4c5