• Non ci sono risultati.

Esercitazione SQL 5

N/A
N/A
Protected

Academic year: 2021

Condividi "Esercitazione SQL 5"

Copied!
11
0
0

Testo completo

(1)

Esercitazione SQL 5

(2)

MECCANICO(MatrM, NomeM)

SA-RIPARARE(MatrM, TipoGuasto)

EFFETTUA-RIPARAZIONE(CodR, MatrM, Targa, Data, Durata, TipoGuasto)

(a) Trovare il nome dei meccanici che hanno effeJuato almeno una riparazione di un guasto che non sapevano riparare.

(b) Trovare il meccanico che ha effeJuato più riparazioni di guasO che non sapeva riparare (se ci fossero più meccanici a pari merito selezionare quello col primo nome in ordine alfabeOco).

(c) Trovare il nome del meccanico e il numero totale di riparazioni del

meccanico che ha effeJuato più riparazioni totali tra quelli che hanno

effeJuato almeno una riparazione di un guasto che non sapevano

riparare (se ci fossero più meccanici a pari merito selezionare quello col

primo nome in ordine alfabeOco).

(3)

Soluzione A

SELECT NomeM

FROM MECCANICO M, EFFETTUA-RIPARAZIONE ER WHERE M.MatrM=ER.MatrM

AND (ER.MatrM, TipoGuasto) NOT IN (SELECT MatrM, TipoGuasto

FROM SA-RIPARARE)

(4)

Soluzione B

SELECT NomeM

FROM MECCANICO M, EFFETTUA-RIPARAZIONE ER WHERE M.MatrM=ER.MatrM

AND (ER.MatrM, TipoGuasto) NOT IN (SELECT MatrM, TipoGuasto

FROM SA-RIPARARE)

GROUP BY M.MatrM, NomeM

ORDER BY RiparazioniTotali DESC, NomeM

LIMIT 1

(5)

Soluzione C

SELECT NomeM, COUNT(*) AS RiparazioniTotali

FROM MECCANICO M, EFFETTUA-RIPARAZIONE ER WHERE M.MatrM=ER.MatrM

AND ER.MatrM IN(

SELECT MatrM

FROM EFFETTUA-RIPARAZIONE

WHERE (MatrM, TipoGuasto) NOT IN (SELECT MatrM, TipoGuasto FROM SA-RIPARARE)

)

GROUP BY M.MatrM, NomeM

ORDER BY RiparazioniTotali DESC, NomeM

LIMIT 1

(6)

MECCANICO(MatrM, NomeM)

SA-RIPARARE(MatrM, TipoGuasto)

EFFETTUA-RIPARAZIONE(CodR, MatrM, Targa, Data, Durata, TipoGuasto)

(d) Trovare i nomi e il numero totale di giorni di lavoro dei meccanici che hanno effeJuato almeno una riparazione di un guasto che non sapevano riparare.

(e) Per le autoveJure per cui sono state necessarie riparazioni effeJuate da

almeno 3 meccanici diversi nello stesso giorno, visualizzare la targa

dell’autoveJura, la data delle riparazioni e i Opi di guasto che si sono

verificaO, ordinando il risultato in ordine crescente di targa e decrescente

di data.

(7)

Soluzione D

SELECT NomeM, COUNT(DISTINCT Data) AS GiorniDiLavoro FROM MECCANICO M, EFFETTUA-RIPARAZIONE ER

WHERE M.MatrM=ER.MatrM AND ER.MatrM IN(

SELECT MatrM

FROM EFFETTUA-RIPARAZIONE

WHERE (MatrM, TipoGuasto) NOT IN (SELECT MatrM, TipoGuasto

FROM SA-RIPARARE)

)

GROUP BY M.MatrM, NomeM

(8)

Soluzione E

SELECT Targa, Data, TipoGuasto FROM EFFETTUA-RIPARAZIONE

WHERE (Targa, Data) IN (SELECT Targa, Data

FROM EFFETTUA-RIPARAZIONE GROUP BY Targa, Data

HAVING COUNT(DISTINCT MatrM)>=3)

ORDER BY Targa ASC, Data DESC;

(9)

SALA RIUNIONI(CodS, NumeroMaxPosO, ProieJore)

PRENOTAZIONE_SALA(CodS, Data, OraInizio, OraFine, CodDip) DIPENDENTE(CodDip, Nome, Cognome, DataNascita, CiJà)

a. Visualizzare per ogni sala il codice della sala, il numero massimo di posO e il numero di prenotazioni considerando solo l’ulOma data in cui la sala è stata prenotata

b. Visualizzare il codice e il numero massimo di posO delle sale dotate di proieJore che sono state prenotate almeno 15 volte per riunioni che iniziano prima delle ore 15:00, ma non sono mai state

prenotate per riunioni che cominciano dopo le ore 20:00.

(10)

Soluzione A

SELECT S.CodS, NumeroMaxPosO, COUNT(*) FROM PRENOTAZIONE_SALA PS1, SALA S

WHERE PS.Cods=S.CodS

AND Data=(SELECT MAX(Data)

FROM PRENOTAZIONE_SALA PS2 WHERE PS2.Cods=PS1.Cods)

GROUP BY S.CodS, NumeroMaxPosO;

(11)

Soluzione B

SELECT S.CodS, NumeroMaxPosO

FROM PRENOTAZIONE_SALA PS1, SALA S WHERE PS.Cods=S.CodS

AND ProieJore=‘si’ AND OraInizio<‘15:00’

AND S.Cods NOT IN

(Select CodS

FROM PRENOTAZIONE_SALA PS2 AND OraInizio>‘20:00’)

GROUP BY S.CodS, NumeroMaxPosO

HAVING COUNT(*)>=15;

Riferimenti

Documenti correlati

[r]

[r]

Si consideri il sistema meccanico mo- strato in figura, costituito da un albe- ro di inerzia J, che ruota a velocit`a ω , a cui `e applicata la coppia esterna τ.. Il

la registrazione del conseguente impegno di spesa di 2.196,00 sulla voce contabile U.1.03.02.09.008.01 “manutenzione ordinaria e riparazioni di beni immobili”- del bilancio

Lucioli in data 19.01.2019 che quantifica una spesa ulteriore pari a € 950,00 (oltre IVA);VISTA la relazione dell’Ufficio Attività Strumentali - Processo Lavori e Manutenzioni

- VISTA la relazione dell’Ufficio Programmazione organizzazione ed attività strumentali del 27 Ottobre 2017, che fa parte integrante della presente determinazione, la quale espone

- VISTA la relazione dell’Ufficio Programmazione organizzazione ed attività strumentali del 29 Settembre 2017, che fa parte integrante della presente determinazione, la quale espone

- VISTA la relazione dell’Ufficio Programmazione organizzazione ed attività strumentali del 25 agosto 2017, che fa parte integrante della presente determinazione, la quale espone in