HAVING è stata inserita perche la parola chiave WHERE non poteva essere usata con le funzioni aggregate.
SELECT
colonne,
Aggregazioni
FROM Tabella
GROUP BY
Colonne
HAVING
Aggregazioni condizione valore
Prediamo in esame due tabelle:
Tabella Società
Societa | Codice |
---|---|
Microsoft | 1 |
Oracle | 2 |
Sun | 3 |
HP | 4 |
MorpheusWeb | 5 |
Tabella Ordini
NumeroOrdine | Importo | CodiceSocieta |
---|---|---|
1001 | 100 | 1 |
1002 | 200 | 2 |
1003 | 50 | 3 |
1004 | 300 | 4 |
1005 | 80 | 1 |
1006 | 120 | 2 |
SELECT
Societa,
SUM(Importo) AS Importo
COUNT(*) AS Ordini,
FROM Societa
LEFT OUTER JOIN Ordini
ON Societa.Codice = Ordini.CodiceSocieta
GROUP BY
Societa
HAVING
COUNT(*) > 1
Restituirà il seguente risultato
Societa | Importo | Ordini |
---|---|---|
Microsoft | 180 | 2 |
Oracle | 320 | 2 |