1 messaggio dal 21 novembre 2015
Ciao a tutti! Sono nuovo su questo forum e un novizio con l'SQL. Mi stavo cimentando in alcuni esercizi e mi sono imbattuto in un paio di problemi che non ho idea di come risolvere. Ho provato in vari modi, ma temo che la soluzione non sia corretta. Posto qui le tabelle di riferimento e i miei tentativi di risoluzione, sperando di ricevere presto un vostro aiuto :)

2. Sono date le relazioni seguenti (le chiavi primarie sono sottolineate):
CORSO-DANZA(CodCorso, Nome, Livello)
CLASSE(CodCorso, CodClasse, NumIscritti)
CALENDARIO-LEZIONI(CodCorso, CodClasse, Data, CodFiscale)
INSEGNANTE-DANZA(CodFiscale, Nome, Cognome, DataNascita)
Esprimere la seguente interrogazione in SQL:
Per le classi che hanno un numero di iscritti superiore alla media del corso a cui fanno riferimento, e che non sono mai state seguite da insegnanti nati dopo il 1990, visualizzare il codice del corso, il codice della classe (CodClasse), la data della prima e dell’ultima lezione effettuata.

SELECT C.CodCorso, C.CodClasse, MIN(Data), MAX(Data)
FROM (SELECT CodCorso, CodClasse, AVG(NumIscritti) AS MediaIscritti FROM CLASSE
GROUP BY CodCorso, CodClasse) AS M , CLASSE C, CALENDARIO-LEZIONI CL, INSEGNANTE DANZA ID

WHERE M.CodCorso=C.CodCorso AND M.CodClasse=C.CodClasse AND NumIscritti>MediaIscritti AND CL.CodFiscale=ID.CodFiscale AND DataNascita ?????? (come faccio??)

----------

3. Sono date le relazioni seguenti (le chiavi primarie sono sottolineate):
OPERATORE(Matricola, NomeO, DataNascita) MANSIONI-ASSEGNATE(Matricola, Mansione)
ATTIVITA(CodA, DescrizioneA, MansioneRichiesta, Durata) CALENDARIO-ATTIVITA(CodA, DataInizio, OraInizio, Matricola)
Esprimere la seguente interrogazione in SQL:
per gli operatori che hanno svolto esclusivamente attivit`a che richiedevano mansioni loro assegnate, visualizzare la matricola e il nome dell’operatore, e, per ogni attivit`a svolta, la descrizione e il numero complessivo di volte in cui `e stata svolta per l’operatore considerato.

SELECT O.Matricola, NomeO, DescrizioneA, COUND DISTINCT (*)
FROM OPERATORE O, ATTIVITÀ A
WHERE O.Matricola NOT IN (SELECT DISTINCT O.Matricola
FROM OPERATORE O, MANSIONI-ASSEGNATE MA, ATTIVITÀ A, CALENDARIO-ATTIVITÀ CA
WHERE A.CodA=CA.CodA AND CA.Matricola=O.Matricola AND MansioneRichiesta<>Mansione);


Grazie a tutti in anticipo e buon weekend! ;)
1.976 messaggi dal 27 luglio 2005
Contributi
salve Andrea,
scusa la domanda preventiva, ma sono "compiti a casa" scolastici?
saluti

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.