Ayuda con procedimiento almacenado
Publicado por Emilio (1 intervención) el 11/02/2018 20:30:50
Soy un poco novato con bbdd y no consigo sacar un procedimiento almacenado que haga lo siguiente:
"1- Crea una única rutina que sume todos los tantos marcados por los jugadores de cada clase, muestre el resultado con la suma y el nombre del grupo ordenado de mayor a menor y finalmente sume dos puntos al primer grupo y uno al segundo. Créala para que se utilicen los permisos del usuario 'limitado'@'localhost' para ejecutarla."
La base de datos es la siguiente:
Como digo soy bastante novato en esto asique disculpad si este codigo no hay por donde cogerlo. Esto es lo que he probado (entre otras cosas) y no consigo sacarlo:
¿Alguien podria orientarme para poder sacarlo?
Un saludo y gracias.
"1- Crea una única rutina que sume todos los tantos marcados por los jugadores de cada clase, muestre el resultado con la suma y el nombre del grupo ordenado de mayor a menor y finalmente sume dos puntos al primer grupo y uno al segundo. Créala para que se utilicen los permisos del usuario 'limitado'@'localhost' para ejecutarla."
La base de datos es la siguiente:
Como digo soy bastante novato en esto asique disculpad si este codigo no hay por donde cogerlo. Esto es lo que he probado (entre otras cosas) y no consigo sacarlo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
DROP PROCEDURE ejercicio1;
DELIMITER //
CREATE DEFINER = 'limitado'@'localhost' PROCEDURE ejercicio1()
BEGIN
# Declaramos variables
DECLARE a CHAR (3);
DECLARE b CHAR (3);
# Hacemos los 2 select
SELECT clase INTO a FROM jugadores GROUP BY clase ORDER BY SUM(tantos_marcados) DESC LIMIT 0,1;
SELECT clase INTO b FROM jugadores GROUP BY clase ORDER BY SUM(tantos_marcados) DESC LIMIT 1,1;
# Hacemos los 2 update
UPDATE clases SET puntuacion=puntuacion+2 WHERE codigo=a;
UPDATE clases SET puntuacion=puntuacion+1 WHERE codigo=b;
# Mostramos los puntos
SELECT grupo, puntuacion FROM clases ORDER BY puntuacion DESC;
END
¿Alguien podria orientarme para poder sacarlo?
Un saludo y gracias.
Valora esta pregunta
0