AlexnIco

Quaderno 2

Apr 29th, 2018
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 3.78 KB | None | 0 0
  1. /* Es 1 */
  2. SELECT NomeD, Ricercatori
  3. FROM (SELECT D.CodD, D.NomeD, COUNT(DISTINCT R.CodR) AS Ricercatori
  4.     FROM RICERCATORE AS R, DIPARTIMENTO AS D
  5.     WHERE R.CodR NOT IN (   SELECT R.CodR
  6.                             FROM RICERCATORE AS R, AZIENDA AS A, CONTRATTO-DI-RICERCA AS CDR
  7.                             WHERE CDR.CodA = A.CodA
  8.                                 AND R.CodR = CDR.CodR
  9.                                 AND (A.TipoA <> 'Grande azienda' OR CDR.Importo <= 100000)
  10.                             )
  11.         AND D.CodD = R.CodD
  12.     GROUP BY
  13.         D.CodD) AS TAB
  14. ;
  15.  
  16. /* Es 2 */
  17. SELECT T.Settore-Industriale, D.CodD, D.NomeD
  18. FROM (  SELECT TMP1.CodD, TMP1.Settore-Industriale
  19.         FROM (  SELECT R.CodD, A.Settore-Industriale, COUNT(*) AS NumContratti
  20.                 FROM RICERCATORE AS R, AZIENDA AS A, CONTRATTO-DI-RICERCA AS CDR
  21.                 WHERE A.CodA = CDR.CodA
  22.                     AND R.CodR = CDR.CodR-ResponsabileScientifico
  23.                     AND CDR.DataInizio > '30/06/2015'
  24.                 GROUP BY R.CodD, A.Settore-Industriale) AS TMP1,
  25.             (   SELECT TMP.Settore-Industriale, MAX(NumContratti) AS MaxNumContratti
  26.                 FROM (  SELECT R.CodD, A.Settore-Industriale, COUNT(*) AS NumContratti
  27.                         FROM RICERCATORE AS R, AZIENDA AS A, CONTRATTO-DI-RICERCA AS CDR
  28.                         WHERE A.CodA = CDR.CodA
  29.                             AND R.CodR = CDR.CodR-ResponsabileScientifico
  30.                             AND CDR.DataInizio > '30/06/2015'
  31.                         GROUP BY R.CodD, A.Settore-Industriale) AS TMP
  32.                 GROUP BY TMP.Settore-Industriale) AS TMP2
  33.         WHERE TMP1.Settore-Industriale = TMP2.Settore-Industriale
  34.             AND TMP1.NumContratti = TMP2.MaxNumContratti) AS T, DIPARTIMENTI AS D
  35. WHERE D.CodD = T.CodD
  36. ;
  37.  
  38. /* Es 3 */
  39. SELECT AU.CodAutore, AU.Cognome, AU.Università, COUNT(*) AS TotArticoli
  40. FROM AUTORE AS AU, EDIZIONE_CONFERENZA AS EC, AUTORE_PRESENTA_ARTICOLO AS APA
  41. WHERE APA.CodAutore = AU.CodAutore
  42.     AND APA.Conferenza = EC.Conferenza
  43.     AND APA.Edizione = EC.Edizione
  44.     AND (APA.CodAutore NOT IN ( SELECT AA.CodAutore
  45.                                 FROM AUTORI_ARTICOLO AS AA, ARTICOLO AS AR
  46.                                 WHERE AA.CodArticolo = AR.CodArticolo
  47.                                     AND AR.Argomento <> 'Data Mining'
  48.                                 )
  49.         AND APA.CodAutore IS NOT NULL
  50.         )
  51. GROUP BY AU.CodAutore, AU.Cognome, AU.Università
  52. ;
  53. GROUP BY AU.CodAutore, Conferenza, Edizione, Cognome, Università;
  54. Togliere JOIN con Edizione_Conferenza;
  55. Nel NOT IN cambiare AA con APA;
  56.  
  57. /* Es 4 */
  58. SELECT CA.CodS
  59. FROM CALENDARIO AS CA
  60. WHERE CA.CodD IN (  SELECT CodD
  61.                     FROM COMPETENZE
  62.                     GROUP BY CodD
  63.                     HAVING NumArgo = (  SELECT MAX(NumArgo)
  64.                                         FROM (  SELECT CodD, COUNT(*) AS NumArgo
  65.                                             FROM COMPETENZE
  66.                                             GROUP BY CodD) AS Tab2)
  67.                 )
  68. ;
  69.  
  70. /* Es 5 */
  71. SELECT T2.MatrDoc, T3.CodCorso
  72. FROM (  SELECT MatrDoc, CodCorso, MAX(MediaStudenti) AS MaxMediaPresenze
  73.         FROM (  SELECT C.MatrDoc, L.CodCorso, AVG(NumStudentiPresenti) AS MediaPresenze
  74.                 FROM LEZIONE AS L, CORSO AS C
  75.                 WHERE C.CodCorso = L.CodCorso
  76.                     AND C.MatrDoc NOT IN (  SELECT MatrDoc
  77.                                             FROM CORSO
  78.                                             WHERE Area <> 'basi di dati'
  79.                                             )
  80.                     AND C.MatrDoc IS NOT NULL
  81.                 GROUP BY C.MatrDoc, L.CodCorso) AS T1
  82.         GROUP BY MatrDoc) AS T2,
  83.     (   SELECT CodCorso, AVG(NumStudentiPresenti) AS MediaPresenze
  84.         FROM LEZIONE
  85.         GROUP BY CodCorso) AS T3
  86. WHERE T3.MediaPresenze = T2.MaxMediaPresenze
  87.     AND T3.CodCorso = T2.CodCorso
  88. ;
  89.  
  90. /* Es 6 */
  91. SELECT MatricolaS, Cognome, Corso_di_Laurea
  92. FROM STUDENTE
  93. WHERE MatricolaS NOT IN (   SELECT V.MatricolaS
  94.                             FROM VALUTAZIONE_HOMEWORK_CONSEGNATI AS V, HOMEWORK_DA_CONSEGNARE AS H
  95.                             WHERE V.CodHW = H.CodHW
  96.                                 AND V.DataConsegna > H.DataScadenzaPrevista
  97.                             )
  98.     AND MatricolaS IN ( SELECT MatricolaS
  99.                             FROM VALUTAZIONE_HOMEWORK_CONSEGNATI
  100.                             WHERE (CodHW, Valutazione) IN ( SELECT CodHW, MAX(Valutazione)
  101.                                                                 FROM VALUTAZIONE_HOMEWORK_CONSEGNATI
  102.                                                                 GROUP BY CodHW)
  103.                             GROUP BY MatricolaS
  104.                             HAVING COUNT(*) = ( SELECT COUNT(*)
  105.                                                 FROM HOMEWORK_DA_CONSEGNARE
  106.                                                 )
  107.                         )
  108. ;
Advertisement
Add Comment
Please, Sign In to add comment