MySQL - Ayuda con un ejercicio senzillo

 
Vista:

Ayuda con un ejercicio senzillo

Publicado por Calle (1 intervención) el 05/05/2020 11:46:07
Alguien me podria ayudar con este ejercicio, no consigo sacarlo adelante:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/*******************************************************************************
EJERCICIO 10.
Tenemos una tabla con los datos (dni, nombre y primer apellido) de los alumnos
apuntados a un curso.
Queremos formar grupos y para ello tenemos una cuarta columna que inicialmente
está vacia. Los grupos se denominarán con letras mayúsculas : A, B, C, D, ...
Hacer un procedimiento que asigne a cada alumno el grupo que le corresponde.
El número de grupos que queremos formar será el parámetro del procedimiento.
Los alumnos, ordenados previamente por apellido y nombre, se repartirán entre los
grupos de la siguiente manera :
- el primer alumno se asignará al grupo A,
- el siguiente al grupo B (si lo hubiera),
- el tercero al grupo C (si lo hubiera)
- y así hasta llegar al último grupo
- el siguiente alumno irá al grupo A otra vez,
- y se procede igual que antes con todos los alumnos restantes
El número de grupos tiene que permitir que todos los grupos tengan como mínimo
3 alumnos, que todos los alumnos tengan un grupo y que no haya más grupos que
letras en el alfabeto(inglés). En caso contrario el procedimiento genera un error
y no hace nada más.
*******************************************************************************/
 
use prog;
 
drop table if exists alumnos;
create table alumnos (
  dni char(9) primary key,
  nombre varchar(50) not null,
  apellido varchar(50) not null,
  grupo char(1) null
);
 
insert into alumnos values
('21733005Y','Eva','Nogales',null),
('39439685K','Pol','Cerezo',null),
('42576995Q','Alba','Robles',null),
('96616190K','Oscar','Pino',null),
('74902989Q','Biel','Cerezo',null),
('83173119J','Eva','Manzano',null),
('91832894N','Luca','Ortiz',null),
('53677282C','Marta','Casado',null),
('45284466L','Miquel','Casabella',null),
('85228627B','Montserrat','Bosch',null),
('86842988W','Antonia','Soto',null),
('59121980C','Pablo','Soto',null);
 
drop procedure if exists agrupa;
 
-- SOLUCION
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