SOLUZIONI:
CREATE VIEW QUERY1 AS
SELECT U.NOME AS UTENTE, S.NOME AS STRUTTURA, S.CITTA AS CITTA
FROM (PRENOTAZIONI P JOIN STRUTTURE S ON P.STRUTTURA=S.CODICE)
JOIN UTENTI U ON U.CF=P.UTENTE;
CREATE VIEW QUERY2 AS
SELECT U.NOME AS NOME, U.COGNOME AS COGNOME, COUNT (P.ESAME) AS NUM_ESAMI
FROM UTENTI U, PRENOTAZIONI P
WHERE U.CF=P.UTENTE
GROUP BY U.NOME,U.COGNOME;
CREATE VIEW QUERY3 AS
SELECT S.NOME AS STRUTTURA, COUNT (P.ESAME) AS NUM_PRENOTAZIONI
FROM STRUTTURE S, PRENOTAZIONI P
WHERE S.CODICE=P.STRUTTURA AND P.DATAPR='24-DIC-2015'
GROUP BY S.NOME;
CREATE VIEW QUERY4 AS
SELECT U.NOME AS NOME, U.COGNOME AS COGNOME
FROM (UTENTI U JOIN PRENOTAZIONI P ON U.CF=P.UTENTE)
JOIN STRUTTURE S ON S.CODICE=P.STRUTTURA
GROUP BY U.NOME, U.COGNOME
HAVING COUNT (U.CF)>1;
CREATE VIEW QUERY5 AS
SELECT U.NOME AS NOME, U.COGNOME AS COGNOME
FROM (UTENTI U JOIN PRENOTAZIONI P ON U.CF=P.UTENTE)
JOIN STRUTTURE S ON S.CODICE=P.STRUTTURA AND S.NOME='CMOLab'
INTERSECT (
SELECT U.NOME AS NOME, U.COGNOME AS COGNOME
FROM (UTENTI U JOIN PRENOTAZIONI P ON U.CF=P.UTENTE)
JOIN STRUTTURE S ON S.CODICE=P.STRUTTURA AND S.NOME='LabAgnano');
CREATE VIEW QUERY6 AS
SELECT U.NOME AS NOME, U.COGNOME AS COGNOME, COUNT (P.ESAME) AS NUM_PRENOTAZIONI
FROM (UTENTI U JOIN PRENOTAZIONI P ON U.CF=P.UTENTE)
JOIN STRUTTURE S ON S.CODICE=P.STRUTTURA AND S.CITTA LIKE 'Torre%'
GROUP BY U.NOME, U.COGNOME HAVING COUNT (U.CF) >= ALL (
SELECT COUNT (P1.ESAME)
FROM (UTENTI U1 JOIN PRENOTAZIONI P1 ON U1.CF=P1.UTENTE)
JOIN STRUTTURE S1 ON S1.CODICE=P1.STRUTTURA AND S1.CITTA LIKE 'Torre%'
GROUP BY U1.CF);
CREATE VIEW QUERY7 AS
SELECT S.NOME, S.CITTA, COUNT (P.ESAME) AS NUM_PRENOTAZIONI
FROM STRUTTURE S, PRENOTAZIONI P
WHERE S.CODICE=P.STRUTTURA
GROUP BY S.NOME, S.CITTA HAVING COUNT (P.ESAME) >= ALL (
SELECT COUNT (P1.ESAME)
FROM STRUTTURE S1, PRENOTAZIONI P1
WHERE S1.CODICE=P1.STRUTTURA
GROUP BY S1.NOME);
CREATE VIEW QUERY1 AS
SELECT U.NOME AS UTENTE, S.NOME AS STRUTTURA, S.CITTA AS CITTA
FROM (PRENOTAZIONI P JOIN STRUTTURE S ON P.STRUTTURA=S.CODICE)
JOIN UTENTI U ON U.CF=P.UTENTE;
CREATE VIEW QUERY2 AS
SELECT U.NOME AS NOME, U.COGNOME AS COGNOME, COUNT (P.ESAME) AS NUM_ESAMI
FROM UTENTI U, PRENOTAZIONI P
WHERE U.CF=P.UTENTE
GROUP BY U.NOME,U.COGNOME;
CREATE VIEW QUERY3 AS
SELECT S.NOME AS STRUTTURA, COUNT (P.ESAME) AS NUM_PRENOTAZIONI
FROM STRUTTURE S, PRENOTAZIONI P
WHERE S.CODICE=P.STRUTTURA AND P.DATAPR='24-DIC-2015'
GROUP BY S.NOME;
CREATE VIEW QUERY4 AS
SELECT U.NOME AS NOME, U.COGNOME AS COGNOME
FROM (UTENTI U JOIN PRENOTAZIONI P ON U.CF=P.UTENTE)
JOIN STRUTTURE S ON S.CODICE=P.STRUTTURA
GROUP BY U.NOME, U.COGNOME
HAVING COUNT (U.CF)>1;
CREATE VIEW QUERY5 AS
SELECT U.NOME AS NOME, U.COGNOME AS COGNOME
FROM (UTENTI U JOIN PRENOTAZIONI P ON U.CF=P.UTENTE)
JOIN STRUTTURE S ON S.CODICE=P.STRUTTURA AND S.NOME='CMOLab'
INTERSECT (
SELECT U.NOME AS NOME, U.COGNOME AS COGNOME
FROM (UTENTI U JOIN PRENOTAZIONI P ON U.CF=P.UTENTE)
JOIN STRUTTURE S ON S.CODICE=P.STRUTTURA AND S.NOME='LabAgnano');
CREATE VIEW QUERY6 AS
SELECT U.NOME AS NOME, U.COGNOME AS COGNOME, COUNT (P.ESAME) AS NUM_PRENOTAZIONI
FROM (UTENTI U JOIN PRENOTAZIONI P ON U.CF=P.UTENTE)
JOIN STRUTTURE S ON S.CODICE=P.STRUTTURA AND S.CITTA LIKE 'Torre%'
GROUP BY U.NOME, U.COGNOME HAVING COUNT (U.CF) >= ALL (
SELECT COUNT (P1.ESAME)
FROM (UTENTI U1 JOIN PRENOTAZIONI P1 ON U1.CF=P1.UTENTE)
JOIN STRUTTURE S1 ON S1.CODICE=P1.STRUTTURA AND S1.CITTA LIKE 'Torre%'
GROUP BY U1.CF);
CREATE VIEW QUERY7 AS
SELECT S.NOME, S.CITTA, COUNT (P.ESAME) AS NUM_PRENOTAZIONI
FROM STRUTTURE S, PRENOTAZIONI P
WHERE S.CODICE=P.STRUTTURA
GROUP BY S.NOME, S.CITTA HAVING COUNT (P.ESAME) >= ALL (
SELECT COUNT (P1.ESAME)
FROM STRUTTURE S1, PRENOTAZIONI P1
WHERE S1.CODICE=P1.STRUTTURA
GROUP BY S1.NOME);