MySQL - MySQL ha dicho: #1054 - La columna 'cantidad' en field list es desconocida

 
Vista:

MySQL ha dicho: #1054 - La columna 'cantidad' en field list es desconocida

Publicado por daniel hernandez (1 intervención) el 10/02/2023 03:41:31
DELIMITER $$
CREATE PROCEDURE procesar_venta(cod_usuario int, cod_cliente int, varchar(50))
BEGIN
DECLARE factura int;

DECLARE registros int;
DECLARE total DECIMAL(10,2);

DECLARE nueva_existencia int;
DECLARE existencia_actual int;

DECLARE tmp_cod_producto int;
DECLARE tmp_cant_producto int;
DECLARE a int;
SET a = 1;

CREATE TEMPORARY TABLE tbl_tmp_tokenuser (
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
cod_prod BIGINT,
cant_prod int);
SET registros = (SELECT COUNT(*) FROM detalle_temp WHERE token_user = token);

IF registros > 0 THEN
INSERT INTO tbl_tmp_tokenuser(cod_prod,cant_prod) SELECT cod_producto,cantidad FROM detalle_temp WHERE token_user = token;

INSERT INTO factura(usuario,cod_cliente) VALUES(cod_usuario,cod_cliente);
SET factura = LAST_INSERT_ID();

INSERT INTO detalle_factura(num_factura,cod_producto,cantidad,precio_venta) SELECT (factura) as num_factura,cod_producto,cantidad,precio_venta FROM detalle_temp WHERE token_user = token;

WHILE a <= registros DO
SELECT cod_prod,cant_prod INTO tmp_cod_producto, tmp_cant_producto FROM tbl_tmp_tokenuser WHERE id = a;
SELECT existencia INTO existencia_actual FROM producto WHERE cod_producto = tmp_cod_producto;

SET nueva_existencia = existencia_actual - tmp_cant_producto;
UPDATE producto SET existencia = nueva_existencia WHERE cod_producto = tmp_cod_producto;

SET a=a+1;
END WHILE;

SET total = (SELECT SUM(cantidad * precio_venta) FROM detalle_temp WHERE token_user = token);
UPDATE factura SET totalfactura = total WHERE num_factura = factura;
DELETE FROM detalle_temp WHERE token_user = token;
TRUNCATE TABLE tbl_tmp_tokenuser;
SELECT * FROM factura WHERE num_factura = factura;

ELSE
SELECT 0;
END IF;
END;$$
DELIMITER ;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

MySQL ha dicho: #1054 - La columna 'cantidad' en field list es desconocida

Publicado por Martha (80 intervenciones) el 10/02/2023 13:24:34
Buenos días,

Cuando creas la tabla temporal hay un campo al que llamas 'cant_prod' y luego le quieres ingresar registros como 'cantidad', por eso es por lo que te da el error.

Cambia cantidad por cant_prod (o casi mejor al revés) y solucionarás el problema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar