pubblicato il 07/04/2015

POTENZIAMENTO - PARTE B


Scaricare questo file ZIP contenente le tabelle necessarie per l'esercitazione. La struttura di riferimento del DB è la seguente:

dove:
- La tabella studenti contiene i dati anagrafici dello studente. Il campo booleano Ripetente contiene True se lo studente è stato bocciato l'anno precedente mentre il campo booleano Bocciato contiene true se è stato bocciato l'anno corrente (sarà compilato a fine anno!).
- La tabella assenze contiene le assenze degli studenti. Attenzione: il campo DataAssenza è testuale. Il campo AssenzaTattica è booleano ed indica se la data dell'assenza coincide con una verifica. Il campo Ore ammette come possibili valori: 1 (assenza durante tutta l'ora di lezione) R (ritardo) G (assenza giustificata per altre attività scolastiche autorizzate) A (uscita prima della fine dell'ora)
- La tabella verifiche contiene i voti delle verifiche. Attenzione il campo DataVerifica è testuale. Il campo modulo è il numero identificativo dell'argomento (1 per il primo modulo, 2 per il secondon modulo etc.). Il voto (che è un campo testuale!) assume i seguenti valori: intero da 1.. 10 (se è una valutazione effettiva) + (bonus) - (penalty) * (controllo esercitazione) M (nota di merito) V (richiamo verbale) S (ammonizione scritta: nota sul registro). Il votoIn100esimi è un campo numerico di tipo double che contiene la reale valutazione numerica con 2 cifre decimali della prova.
- La tabella colloqui contiene le registrazioni dei colloqui. Il campo DataColloquio è di tipo data/ora. Il campo HaPrenotato è booleano ed è impostato a true se lo studente ha effettuato la prenotazione tramite web. Il campo QualeGenitore contiene il genitore che è venuto a colloquio ("Mamma", "Papà", "Entrambe", "Altro: ...")

ESERCIZIO 1 - IV-M2.5B.1

SCRIVERE I SEGUENTI COMANDI SQL MONOTABELLARI CHE RESTITUISCONO I RISULTATI SOTTOSTANTI - IN QUESTO ESERCIZIO NON SI POSSONO UTILIZZARE LE FUNZIONI VBA. L'OUTPUT DELLA VOSTRA SOLUZIONE DEVE RISPETTARE LA SEQUENZA DEI CAMPI ED EVENTUALI FORMATI. 

a1)
Elenco dei nominativi ("Cognome"+ "Nome") degli studenti di quarta maschi il cui "cognome" inizia per "A"


a2)
Elenco dei colloqui (tutti i campi) effettuati dal 16/2/2014 al 23/3/2014 oppure dal 20/4/2014 fino al termine dell'anno scolastico 2013-2014 (10/6/2014) dove non compare nel campo "QualeGenitore" la parola "Mamma"  o "Papà"


a3)
Nominativo
("Cognome" + "Nome") e "classe" dello studente che ha effettuato l'ultimo accesso al forum


a4)
Elenco completo degli studenti ordinato per "classe", "cognome" e "nome". L'elenco deve mostrare unicamente il "Cognome", il "Nome" e la "Classe" all'interno di un'unica colonna (esempio "Cognome Nome - Classe")

a5)
Elenco degli studenti (tutti i campi!) che appartengono ad una determinata "classe" (la classe viene richiesta durante l'esecuzione della query). L'elenco deve essere ordinato per "nominativo"


a6)
Elenco degli studenti (solo il "cognome") il cui cognome non contiene la lettera "A" ma che inizia con "D" o "F"


a7)
Studente ("Cognome" + "Nome") che ha effettuato il maggior numero di accessi al registro


a8)
Elenco dei colloqui infrasettimanali prenotati in cui è venuto il "nonno" o la "nonna"


a9)
Elenco delle assenze tattiche che sono state fatte a partire dal 20/02/2014 fino alla fine del mese. Si osservi che il campo "DataColloquio" è testuale. Inoltre si ricorda che nell'Esercizio1 non è possibile utilizzare nessuna delle funzioni VBA.


a10)
Elenco degli studenti (solo "cognome" e "classe") di seconda o di quarta che non hanno completato con successo (ritirati o bocciati!) l'anno scolastico

ESERCIZIO 2 - IV-M2.5B.2

SCRIVERE I SEGUENTI COMANDI SQL MONOTABELLARI CHE RESTITUISCONO I RISULTATI SOTTOSTANTI - IN QUESTO ESERCIZIO SI POSSONO UTILIZZARE LE FUNZIONI VBA. L'OUTPUT DELLA VOSTRA SOLUZIONE DEVE RISPETTARE LA SEQUENZA DEI CAMPI ED EVENTUALI FORMATI.

b1)
Elenco ordinato delle verifiche orali ("DataVerifica", "Voto" e "Tipologia") di maggio o gennaio effettuate di lunedì con voto superiore a "7". Attenzione: I campi "DataVerifica" e "Voto" sono testuali!

b2)
Elenco degli studenti (solo il "cognome") il cui cognome ha la seconda lettera uguale alla penultima e il numero dei caratteri è superiore a 3


b3) Elenco dei colloqui prenotati che si sono svolti di mercoledì o sabato nell'anno 2013.


b4)
Elenco degli studenti ("cognome", "nome" e "classe") che presentano nel "cognome" almeno 2 lettere "A" ed anche 2 lettere "C" (anche non consecutive!)


b5)
Elenco delle verifiche scritte sufficienti svolte dopo il 25-esimo giorno di un qualsiasi mese il cui "voto" differisce da quello di riferimento contenente anche 2 decimali (campo "VotoIn100esimi") di al massimo di 0,02. Il campo "VotoIn100esimi" è di tipo double.


b6)
Elenco delle verifiche orali con voto pari a 6 relative al primo modulo che si sono svolte l'ultimo giorno di un qualsiasi mese


b7)
Elenco delle verifiche del 31 maggio 2014 non relative al modulo "3" con valutazione diversa da 5 e 6


b8)
Elenco degli studenti di "3T", ordinati per "cognome" e "nome", che mostri i seguenti "esiti":

Si ricorda che il campo booleano "Ripetente" è posto a true se lo studente è stato bocciato l'anno precedente mentre il campo "Bocciato" contiene true se è stato bocciato l'anno corrente.

b9)
Elencare le valutazioni finali delle verifiche (campo "Voto" rinominato in "Voto definitivo") con a fianco la valutazione associata basata su cifre con i decimali (campo "votoIn100esimi"). Mostrare inoltre la differenza tra le 2 valutazioni ed indicare se rispetto al "Voto definitivo" ho effettuato un'aggiunta, una sottrazione o niente (stringa vuota "") nel caso i due voti coincidano.

b10)
Elencare, sulla base di una specifica richiesta, i maschi oppure le femmine oppure tutti gli studenti di una "classe" digitata da tastiera

ESERCIZIO 3 - IV-M2.5B.3

SCRIVERE I SEGUENTI COMANDI SQL MONOTABELLARI STATISTICI CHE  RESTITUISCONO I RISULTATI SOTTOSTANTI - IN QUESTO ESERCIZIO SI POSSONO UTILIZZARE LE FUNZIONI VBA. L'OUTPUT DELLA VOSTRA SOLUZIONE DEVE RISPETTARE LA SEQUENZA DEI CAMPI ED EVENTUALI FORMATI.

c1)
Numero studenti per "classe".


c2)
Numero di verifiche per mese. L'elenco, ordinato in modo cronologico, deve presentare il nome del mese seguito dall'anno.


c3)
Numero totale di studenti


c4)
Totale ore di assenza per giorno della settimana (l'elenco deve essere ordinato partendo dalla domenica fino a sabato)


c5)
Numero totale dei ritardi (il campo "Ore" nella tabella Assenze nel caso di un ritardo contiene il carattere "R")


c6)
Numero totale di studenti maschi e femmine indicato su 2 righe distinte


c7)
Numero totale di studenti maschi e femmine indicato su 2 colonne distinte (non si può usare una query incrociata!)


c8)
Totale colloqui effettuati, prenotati e percentuale dei prenotati rispetto al totale dei colloqui svolti.


c9)
Fornire la distribuzione delle verifiche per singolo "voto" ovvero il numero di verifiche che hanno avuto come esito un determinato voto e questo per ogni voto


c10) 
Distribuzione per fascia oraria dell'ultimo accesso al forum. In altre parole per ogni ora del giorno deve visualizzare quanti "ultimi accessi al forum" si sono verificati in quella fascia. L'orario dell'ultimo accesso è all'interno del campo "UltimoAccessoAlForum" della tabella studenti!

ESERCIZIO 4 - IV-M2.5B.4

SCRIVERE I SEGUENTI COMANDI SQL MULTITABELLARI CHE  RESTITUISCONO I RISULTATI SOTTOSTANTI - IN QUESTO ESERCIZIO SI POSSONO UTILIZZARE LE FUNZIONI VBA. L'OUTPUT DELLA VOSTRA SOLUZIONE DEVE RISPETTARE LA SEQUENZA DEI CAMPI ED EVENTUALI FORMATI.

d1)
Elenco dei ritardi di ottobre relativi al biennio. Deve essere visualizzato il "Cognome", "Nome" e "DataAssenza". Attenzione il campo DataAssenza contenuto nella tabella assenze è testuale!


d2)
Nominativo ("Cognome" e "Nome") dello studente di "5N" che ha fatto il primo ritardo in quella classe (il campo "ore" della tabella assenze contiene nel caso di un ritardo la lettera "R"!)


d3)
Media e varianza dei voti distinto per "classe". Attenzione il campo "voto" della tabella verifiche è testuale e potrebbe talvolta non contenere valori numerici (che vanno quindi esclusi!). Inoltre i dati relativi alle statistiche richieste devono presentare al massimo 2 decimali


d4)
Media dei voti sufficienti per "classe". Attenzione il campo "voto" della tabella verifiche è testuale e potrebbe talvolta non contenere valori numerici (che vanno quindi esclusi!). Inoltre i valori relativi alle statistiche richieste devono presentare al massimo 2 decimali


d5)
Nominativo dello studente con il maggior numero di assenze (Attenzione il campo "ore" della tabella assenze contiene un valore numerico solo quando si tratta di una assenza effettiva!)


d6)
Relativamente alla materia "informatica" fornire in un'unica query le seguenti statistiche :

Attenzione il campo "voto" della tabella verifiche è di tipo testuale! Il nome della materia è reperibile nel campo "materia"  della tabella _CfgSys_Materie.


d7)
Nominativo dello studente con il maggior numero di assenze. Il campo "ore" nella tabella assenze è testuale e contiene un simbolo numerico solo quando si tratta di una assenza!


d8)
Numero di assenze per ogni studente con almeno un'assenza


d9)
Numero di assenze per ogni studente (per quelli che non sono mai stati assenti deve comparire 0!)


d10)
Elenco degli studenti ("cognome", "nome" e "classe") che non hanno avuto ne assenze, ne ritardi, ne uscite anticipate (non è ammesso l'uso di sottoquery!).


ESERCIZIO 5 - IV-M2.5B.5

SCRIVERE I SEGUENTI COMANDI SQL CHE  RESTITUISCONO I RISULTATI INDICATI - IN QUESTO ESERCIZIO SI POSSONO UTILIZZARE LE FUNZIONI VBA. L'OUTPUT DELLA VOSTRA SOLUZIONE DEVE RISPETTARE LA SEQUENZA DEI CAMPI ED EVENTUALI FORMATI.

e1)
Numero totale di studenti maschi e femmine per "classe" (è una query incrociata!)


e2)
Numero di verifiche per mese e per "classe" (è una query incrociata)


e3)
Elenco degli studenti di 1T o 2Q che non hanno ne assenze (il campo "ore" in assenze contiene il simbolo numerico "1" quando si tratta di una assenza per tutta l'ora!)  ne ritardi (in questo caso "ore" contiene il simbolo "R"!). Attenzione si deve usare una sottoquery.


e4)
Elenco degli studenti che hanno avuto almeno 6 verifiche nel mese di maggio. Attenzione si deve usare una sottoquery.


e5)
Creare la tabella _tmp_EstrazioneAlunni cosi definita:



e6)
Popolare la nuova tabella _tmp_EstrazioneAlunni  con i seguenti dati (generati partendo dalle tabelle studenti e verifiche): "codice studente", "nominativo", "classe", se è "maschio" o femmina, "bocciato", "ritirato" e la "mediavoti" assegnati durante l'anno.


e7) Modificare la struttura della tabella _tmp_EstrazioneAlunni in questo modo:


e8)
Aggiornare il contenuto del campo "classe" della tabella temporanea _tmp_EstrazioneAlunni dei soli studenti promossi in modo che risultino abbinati alla classe successiva (esempio chi era in "4T" verrà assegnato alla "5T"). Restano quindi esclusi i bocciati, i ritirati e quelli della classe quinta la cui classe successiva non può essere la sesta!


e9)
Eliminare tutti gli studenti del biennio con un numero di assenze compreso tra 40 e 120 ma con media voto superiore a 6



e10)
Creare una tabella _tmp_Alfabeto contenente tutti i caratteri iniziali del campo "nome" della tabella studenti.  L'unico campo presente nella nuova tabella _tmp_Alfabeto si deve chiamare "lettera". Al termine dell'esecuzione della query nella tabella _tmp_Alfabeto  dovrebbero mancare solo le lettere: "H", "K", "U" ed "X".


e11)
Impostare il campo "lettera" della tabella _tmp_Alfabeto come campo chiave


e12)
Aggiungere la lettera "X" alla tabella _tmp_alfabeto appena creata (Accodamento di un singolo record costante
)

e13)
Completare la tabella _tmp_alfabeto aggiungendo le lettere restanti ("H", "K" ed "U") sfruttando il secondo carattere del campo "
Cognome" della tabella studenti. Suggerimento: usare una query di accodamento.


e14)
Elencare il numero di studenti che contengono nel "cognome" una determinata lettera e questo per tutte le lettere dell'alfabeto distinto per annualità scolastica. Suggerimento: costruire una query incrociata basata su no join che utilizza la funzione instr().


e15)
Eliminazione delle tabelle temporanee _tmp_Alfabeto  e _tmp_EstrazioneAlunni