Procedura in MYSQL - PAGELLINO INFRAQUADRIMESTRALE

Sono uno studente di 5° Informatici e devo creare una procedura in SQL usando MYSQL. La procedura in questione deve creare il classico pagellino infraquadrimestrale, quindi deve fare la media delle interrogazioni di un dato alunno dalla data di inizio scuola, sino alla data di fine primo infraquadrimestre suddivise per materia. Mi deve dare come risultato non voti ma giudizzi così suddivisi:

  • NULL - Non classificato,
  • 1<Media<3 - Scarso,
  • 4 - Insuff,
  • 5 - Mediocre,
  • 6 - Suff e
  • >6 - + che suff

La difficoltà non sta mnel fare questo passaggio, salvo per il fatto del null. Tutto sta nel creare una procedura che abbiamo come parametro di input la matricola dell'alunno e calcoli il pagellino. La difficolsta sta nel prendere le materie del corso informatici da una variabile che ha al suo interno proprio le materie cioè:

SET Materie_Informatici = ' Storia Informatica Italiano Calcolo Matematica etc...';

I dati li prendo dalla tabelle verifica così composta:

-- -- Struttura della tabella `verifica` --  

CREATE TABLE IF NOT EXISTS `verifica`
(
`IDDocente` int(11) NOT NULL,
`Matricola` int(11) NOT NULL,
`Data` date NOT NULL,
`Materia` varchar(50) NOT NULL,
`Tipologia` enum('Scritto','Orale','Pratico') NOT NULL,
`Voto` decimal(4,2) NOT NULL,  
  PRIMARY KEY (`IDDocente`,`Matricola`,`Data`,`Materia`) )
  ENGINE=InnoDB DEFAULT CHARSET=latin1; 

Dove IDDocente e Matricola sono chiavi estrene.

Per ora ho fatto solo questo:  

(SELECT verifica.MATERIA, (CASE 1 WHEN((FLOOR( AVG(voto) )) = '0') THEN 'Non Classificato'  WHEN((FLOOR( AVG(voto) )) BETWEEN '1' AND '3') THEN 'Non Classificato' WHEN((FLOOR( AVG(voto) )) = '4') THEN 'Non Sufficiente' WHEN((FLOOR( AVG(voto) )) = '5') THEN 'Mediocre'  WHEN((FLOOR( AVG(voto) )) = '6') THEN 'Sufficiente'  WHEN((FLOOR( AVG(voto) )) > '6') THEN 'Più Sufficiente' END)AS VOTO
FROM Verifica
Where Matricola = '1' AND Data BETWEEN '2011-07-10' AND '2011-12-01'
AND Materia =  'ITALIANO');

come fare? mi potete dare una mano?

grazie in anticipo;

inviato 4 anni fa
pepp.90
modificato 4 anni fa
Puoi gentilmente formattare la tua richiesta in modo da renderla più leggibile?Mario Santagiuliana 4 anni fa
Fatto. ho eseguito la tua richietsapepp.90 4 anni fa
La tabella modifica non ha un suo ID, immagino IDDocente fa riferimento al docente, Matricola alla matricola di un alunno. Infine al posto tuo con l'SQL farei solo l'estrazione dei dati dal db e poi tramite Php l'elaborazione dei vari casi.Mario Santagiuliana 4 anni fa
lo so anche io farei così ma se il docente vuole questo....pepp.90 4 anni fa
Non esiste una "reale" chiave primaria per la tabella. Secondo me si rischia la perdita di integrità dei dati...non ha senso usare 2 campi come chiave primaria.Mario Santagiuliana 4 anni fa
non ha senso lo so. ma è fatta così: docente (verifica) alunno dove verifica è la relazionepepp.90 4 anni fa
Ultima domanda: non hai compreso come poter fare una richiesta tramite Php?Mario Santagiuliana 4 anni fa
il php lo appena iniziato ma qui devo usare solo databasepepp.90 4 anni fa
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda