Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => Bases de Datos => Mensaje iniciado por: elbrujo20 en 21 Abril 2017, 09:12 AM

Título: error con un procedimiento con cursor
Publicado por: elbrujo20 en 21 Abril 2017, 09:12 AM
buenas noches estaba haciendo un ejercicio pero no encuentro el error por mas que busco no se a que se deba y no se mucho de mysql  intento hacer esto

Código (sql) [Seleccionar]

CREATE PROCEDURE temporal( IN temp int)
BEGIN

DECLARE maxima int
SELECT max(ventas) FROM vendedor INTO maxima;
CREATE TABLE ven_temp AS SELECT id_vendedor FROM vendedor;
WHERE ventas=maxima;
COMMIT;
END;


me marca error #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT max(ventas) FROM vendedor INTO maxima' at line 5 quito . y comas y sigue igual no se a que se deba

creo que puede ser por la version pero no se como se haga a la version que tengo uso esta
Versión de PHP: 5.5.38
phpmyadmin Acerca de esta versión: 4.5.1

Saludos
Título: Re: error con un procedimiento con cursor
Publicado por: 3n31ch en 21 Abril 2017, 10:07 AM
El primer error que veo es que después del
Código (sql) [Seleccionar]

DECLARE maxima INT


te falto el ";"

Ademas me confunde ese WHERE de abajo... estas seguro que es así?.  Nunca he creado una tabla con un SP.

No querrás decir algo así?

Código (sql) [Seleccionar]
CREATE PROCEDURE temporal( IN temp INT)
BEGIN
DECLARE maxima INT;
SELECT MAX(ventas) FROM vendedor INTO maxima;
CREATE TABLE ven_temp AS SELECT id_vendedor FROM vendedor WHERE ventas=maxima;
COMMIT;
END;



Título: Re: error con un procedimiento con cursor
Publicado por: crisoof en 30 Agosto 2017, 16:09 PM
esta mal el INTO

Código (sql) [Seleccionar]

CREATE PROCEDURE temporal( IN temp INT)
BEGIN
DECLARE maxima INT;
SELECT MAX(ventas) INTO maxima FROM vendedor ;
CREATE TABLE ven_temp AS SELECT id_vendedor FROM vendedor WHERE ventas=maxima;
COMMIT;
END;


Saludos