Dubbio Query annidata

di il
3 risposte

Dubbio Query annidata

Salve a tutti,sono un principiante,quindi abbiate pietà.Allego nel post,un esercizio con conseguente mia risoluzione,non essendo esperto nel campo vorrei sapere se la mia soluzione sia giusta e al contempo se ci siano soluzioni più veloci:

Data la seguente relazione:
SEMINARIO(CodS, TitoloS, Argomento, Durata)
DOCENTE(CodD, NomeD, DataNascita)
CALENDARIO(CodS, DataInizio, OraInizio CodD, Aula)
COMPETENZE(CodD, Argomento)


per i docenti che hanno tenuto esclusivamente seminari su argomenti per cui dispongono delle competenze,visualizzare il codice e il nome del docente, e, per ogni seminario tenuto, il titolo e il numero complessivo di edizioni a calendario.

SOLUZIONE:
SELECT DISTINCT TitoloS,NumEdizioni,C.CodD,Nome
FROM CALENDARIO AS C,DOCENTE AS D,SEMINARIO AS S,(SELECT CodS,COUNT(*)AS NumEdizioni
FROM CALENDARIO
GROUP BY CodS) AS E

WHERE E.CodS=S.CodS AND D.CodD=C.CodD AND C.CodD IN(SELECT DISTINCT CP.CodD
FROM COMPETENZE AS CP
SEMINARIO AS S
WHERE S.Argomento=CP.Argomento)
GROUP BY TitoloS;

3 Risposte

  • Re: Dubbio Query annidata

    C'é un modo molto semplice per vedere se la query va bene.

    Basta provarla puó anche servire a fare pratica visto che come dici sei agli inizi
  • Re: Dubbio Query annidata

    Per provare qualcosa in sql hai bisogno di una base dati pre-esistente,ovvero la definizione delle tabelle e il popolamento delle stesse.
  • Re: Dubbio Query annidata

    Esatto.

    Crea il db, popola le tabelle con pochi dati di esempio e prova la query
Devi accedere o registrarti per scrivere nel forum
3 risposte