Sie sind auf Seite 1von 4

1)

SELECT A.CodAbbonato, A.NomeAbbonato, A.CognAbbonato, T.CodAbbonamento, P.Titolo,


R.DescPeriodicita,
S.DescTipoGiornale, C.DescTipoAbbonamento, Q.ImpCostiPubblicazione FROM Abbonati A
INNER JOIN Abbonamenti T ON A.CodAbbonato = T.CodAbbAbbonamento
LEFT JOIN Pubblicazioni P ON T.CodPubAbbonamento = P.CodPubblicazione
LEFT JOIN Periodicita R ON R.CodPeriodicita = P.CodPerPubblicazione
LEFT JOIN TipoGiornale S ON S.CodTipoGiornale = P.CodTGioPubblicazione
LEFT JOIN TipiAbbonamento C ON C.CodTipoAbbonamento = T.CodTplAbbonamento
LEFT JOIN CostiPubblicazione Q ON Q.CodPubCostiPubblicazione = P.CodPubblicazione

WHERE Q.CodTipoCostiPubblicazione = C.CodTipoAbbonamento


ORDER BY T.CodAbbonamento

1)

SELECT Abbonati.CognAbbonato, Abbonati.NomeAbbonato, TipoGiornale.DescTipoGiornale,


Pubblicazioni.Titolo, Periodicita.DescPeriodicita, TipiAbbonamento.DescTipoAbbonamento,
CostiPubblicazione.ImpCostiPubblicazione
FROM Abbonati, Abbonamenti, TipoGiornale, Pubblicazioni, Periodicita, TipiAbbonamento,
CostiPubblicazione
WHERE Abbonati.CodAbbonato = Abbonamenti.CodAbbAbbonamento AND
Pubblicazioni.CodPubblicazione = Abbonamenti.CodPubAbbonamento AND
Periodicita.CodPeriodicita = Pubblicazioni.CodPerPubblicazione AND
TipoGiornale.CodTipoGiornale = Pubblicazioni.CodTGioPubblicazione AND
Abbonamenti.CodTplAbbonamento = TipiAbbonamento.CodTipoAbbonamento AND
CostiPubblicazione.CodPubCostiPubblicazione = Pubblicazioni.CodPubblicazione
ORDER BY Abbonati.CognAbbonato, Abbonati.NomeAbbonato

SELECT P.CodPubblicazione, P.Titolo, A.TitoloArticolo, S.AnnoPubblicano, S.NumPubPubblicano


FROM Pubblicazioni P
LEFT JOIN Pubblicano S ON S.CodPubPubblicano = P.CodPubblicazione
LEFT JOIN Articoli A ON S.CodArtPubblicano = A.CodArticolo

ORDER BY S.AnnoPubblicano, S.NumPubPubblicano

--

SELECT Pubblicazioni.Titolo, Pubblicano.AnnoPubblicano, Pubblicano.NumPubPubblicano,


Articoli.TitoloArticolo
FROM Pubblicazioni, Pubblicano, Articoli
WHERE Pubblicazioni.CodPubblicazione = Pubblicano.CodPubPubblicano
AND Pubblicano.CodArtPubblicano = Articoli.CodArticolo
ORDER BY Pubblicano.AnnoPubblicano, Pubblicano.NumPubPubblicano

SELECT N.DescNazione, R.DescRegione, P.DescProvincia, C.DescCitta, A.NomeAbbonato,


A.CognAbbonato , COUNT(*), T.DataAbbonamento FROM Nazioni N

LEFT JOIN Regioni R ON R.IdNazRegione = N.IdNazione


LEFT JOIN Province P ON P.IdRegProvincia = R.IdRegione
LEFT JOIN Citta C ON C.IdProvCitta = P.IdProvincia
LEFT JOIN Abbonati A ON A.IdCittaAbbonato = C.IdCitta
LEFT JOIN Abbonamenti T ON T.CodAbbAbbonamento = A.CodAbbonato

WHERE YEAR(T.DataAbbonamento) = '2016' OR YEAR(T.DataAbbonamento) = '2017'


GROUP BY N.DescNazione, R.DescRegione, P.DescProvincia, C.DescCitta, A.NomeAbbonato,
A.CognAbbonato, T.DataAbbonamento

ORDER BY R.DescRegione, P.DescProvincia, C.DescCitta

3)

SELECT Nazioni.DescNazione, Regioni.DescRegione, Province.DescProvincia, Citta.DescCitta,


COUNT(Abbonati.CodAbbonato) AS Abbonamenti
FROM Nazioni, Regioni, Province, Citta, Abbonati, Abbonamenti
WHERE Nazioni.IdNazione = Regioni.IdNazRegione AND
Regioni.IdRegione = Province.IdRegProvincia AND
Province.IdProvincia = Citta.IdProvCitta AND
YEAR(Abbonamenti.DataAbbonamento) <= 2017 AND
YEAR(Abbonamenti.DataAbbonamento) >= 2016 AND
Abbonamenti.CodAbbAbbonamento = Abbonati.CodAbbonato AND
Abbonati.IdCittaAbbonato = Citta.IdCitta
GROUP BY Nazioni.DescNazione, Regioni.DescRegione, Province.DescProvincia, Citta.DescCitta
ORDER BY Regioni.DescRegione, Province.DescProvincia, Citta.DescCitta

SELECT A.CodAbbonamento, T.NomeAbbonato, T.CognAbbonato, A.DataAbbonamento FROM


Abbonamenti A
LEFT JOIN Abbonati T ON A.CodAbbAbbonamento = T.CodAbbonato
WHERE A.DataAbbonamento = (SELECT MAX(DataAbbonamento) FROM Abbonamenti)

SELECT P.CodPubblicazione, P.Titolo, COUNT(*) FROM Pubblicazioni P


LEFT JOIN Pubblicano T ON T.CodPubPubblicano = p.CodPubblicazione
LEFT JOIN Articoli A ON T.CodArtPubblicano = A.CodArticolo

GROUP BY P.CodPubblicazione, P.Titolo

HAVING COUNT(*) = (SELECT MAX(QQQ.Numero) FROM (SELECT P.CodPubblicazione, P.Titolo,


COUNT(*) AS Numero FROM Pubblicazioni P
LEFT JOIN Pubblicano T ON T.CodPubPubblicano = p.CodPubblicazione
LEFT JOIN Articoli A ON T.CodArtPubblicano = A.CodArticolo

GROUP BY P.CodPubblicazione, P.Titolo) AS QQQ)

5)
SELECT Pubblicazioni.*, COUNT(Pubblicano.CodArtPubblicano) AS NPubblicazioni
FROM Pubblicazioni, Pubblicano
WHERE Pubblicazioni.CodPubblicazione = Pubblicano.CodPubPubblicano
GROUP BY Pubblicazioni.CodPubblicazione, Pubblicazioni.CodPerPubblicazione,
Pubblicazioni.CodTGioPubblicazione, Pubblicazioni.Titolo
HAVING COUNT(Pubblicano.CodArtPubblicano) = (SELECT MAX(Npubblicazioni) FROM (SELECT
COUNT(Pubblicano.CodArtPubblicano) AS NPubblicazioni
FROM Pubblicazioni, Pubblicano
WHERE Pubblicazioni.CodPubblicazione = Pubblicano.CodPubPubblicano
GROUP BY Pubblicazioni.CodPubblicazione, Pubblicazioni.CodPerPubblicazione,
Pubblicazioni.CodTGioPubblicazione, Pubblicazioni.Titolo) AS Q1)
6
SELECT P.Titolo FROM Pubblicazioni P
WHERE EXISTS (
SELECT Count(*) FROM Pubblicano T,
inner JOIN Articoli A ON T.CodArtPubblicano = A.CodArticolo
WHERE T.CodPubPubblicano = P.CodPubblicazione
HAVING COUNT(*) >= 2
)

Così è errata
SELECT P.Titolo FROM Pubblicazioni Pb
WHERE EXISTS (
SELECT Count(*) FROM Pubblicano T
INNER JOIN Articoli A ON T.CodArtPubblicano = A.CodArticolo
INNER JOIN Pubblicazioni P on T.CodPubPubblicano = P.CodPubblicazione
HAVING COUNT(*) >= 2
)

Questa ha il medesimo errore


SELECT P.Titolo FROM Pubblicazioni P
WHERE EXISTS (SELECT Count(*) FROM Pubblicano HAVING COUNT(*) >= 2)
Questa ha il medesimo errore
SELECT P.Titolo FROM Pubblicazioni P
WHERE EXISTS (SELECT * FROM Abbonati)

6)
SELECT DISTINCT Pubblicazioni.*
FROM Pubblicazioni, Pubblicano
WHERE EXISTS (SELECT * FROM (SELECT Pubblicazioni.*, COUNT(Pubblicano.CodArtPubblicano) AS
NPubblicazioni
FROM Pubblicazioni, Pubblicano
WHERE Pubblicazioni.CodPubblicazione = Pubblicano.CodPubPubblicano
GROUP BY Pubblicazioni.CodPubblicazione, Pubblicazioni.CodPerPubblicazione,
Pubblicazioni.CodTGioPubblicazione, Pubblicazioni.Titolo
HAVING COUNT(Pubblicano.CodArtPubblicano) >= 2) AS Q1 WHERE Q1.CodPubblicazione =
Pubblicazioni.CodPubblicazione)

SELECT YEAR(A.DataAbbonamento), MONTH(A.dataAbbonamento), SUM(C.ImpCostiPubblicazione) from


Abbonamenti a
LEFT JOIN Pubblicazioni P On A.CodAbbonamento = P.CodPubblicazione
LEFT JOIN CostiPubblicazione C ON C.CodPubCostiPubblicazione = P.CodPubblicazione
GROUP BY YEAR(A.DataAbbonamento), MONTH(A.dataAbbonamento)

7)
SELECT YEAR(Abbonamenti.DataAbbonamento), MONTH(Abbonamenti.DataAbbonamento),
SUM(CostiPubblicazione.ImpCostiPubblicazione) AS Ricavato
FROM Abbonamenti, TipiAbbonamento, Pubblicazioni, CostiPubblicazione
WHERE Abbonamenti.CodTplAbbonamento = TipiAbbonamento.CodTipoAbbonamento AND
Abbonamenti.CodPubAbbonamento = CostiPubblicazione.CodPubCostiPubblicazione
GROUP BY YEAR(Abbonamenti.DataAbbonamento), MONTH(Abbonamenti.DataAbbonamento)
ORDER BY YEAR(Abbonamenti.DataAbbonamento), MONTH(Abbonamenti.DataAbbonamento)
8

SELECT A.CodAbbonato, A.CognAbbonato, A.NomeAbbonato FROM Abbonati A


LEFT JOIN CittA c ON A.IdCittaAbbonato = C.IdCitta
LEFT JOIN Province P ON C.IdProvCitta = P.IdProvincia

WHERE P.IdProvincia IN (
SELECT IdProvincia FROM Province R
WHERE R.DescProvincia = 'Milano' OR R.DescProvincia = 'Torino' OR R.DescProvincia = 'Cuneo'
OR R.DescProvincia = 'Savona'
)

9)
SELECT Regioni.DescRegione, Province.DescProvincia
FROM Regioni, Province
WHERE Regioni.IdRegione IN (SELECT Regioni.IdRegione
FROM Regioni, Province
WHERE Regioni.IdRegione = Province.IdRegProvincia
GROUP BY Regioni.IdRegione
HAVING COUNT(*) >= 8) AND
Province.IdRegProvincia = Regioni.IdRegione

SELECT P.DescProvincia, Q.DescRegione FROM Province P


LEFT JOIN Regioni Q ON p.IdRegProvincia = Q.IdRegione
WHERE P.IdRegProvincia IN (
SELECT R.IdRegione FROM Regioni R
LEFT JOIN Province T ON T.IdRegProvincia = R.IdRegione
GROUP BY R.IdRegione
HAVING COUNT(*) >= 8
)

GROUP BY P.DescProvincia, q.DescRegione


ORDER BY Q.DescRegione

10

SELECT P.DescProvincia, COUNT(*) FROM Province P


LEFT JOIN Citta C ON C.IdProvCitta = P.IdProvincia

GROUP BY P.DescProvincia

HAVING COUNT(*) > 10

10)
FROM Province, Citta
WHERE Province.IdProvincia = Citta.IdProvCitta
GROUP BY Province.DescProvincia
HAVING COUNT(Citta.IdProvCitta) > 10

Das könnte Ihnen auch gefallen