Il 0% ha trovato utile questo documento (0 voti)
18 visualizzazioni2 pagine

Query e SubQuery

Caricato da

artro5658
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato TXT, PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
18 visualizzazioni2 pagine

Query e SubQuery

Caricato da

artro5658
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato TXT, PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 2

-- 1) Elenco prodotti la cui scorta è inferiore alla quantità in ordine dai clienti

SELECT prodotti., SUM(dettagli_ordini.quantita)


FROM prodotti JOIN dettagli_ordini ON prodotti.id_prodotto =
dettagli_ordini.id_prodotto
GROUP BY prodotti.id_prodotto
HAVING prodotti.scorte SUM(dettagli_ordini.quantita)

-- 2) Numero Clienti con Totale Ordinato maggiore di 1000

SELECT COUNT(clienti.id_cliente)
FROM clienti
WHERE clienti.id_cliente IN (SELECT clienti.id_cliente
FROM clienti INNER JOIN ordini ON clienti.id_cliente = ordini.id_cliente INNER JOIN
dettagli_ordini ON ordini.id_ordine = dettagli_ordini.id_ordine
HAVING SUM(dettagli_ordini.quantita) 1000)

-- 3) Elencare gli impiegati che non hanno lavorato ad ordini relativi al prodotto
“Tarte au sucre”.

SELECT impiegati.nome, impiegati.cognome


FROM impiegati INNER JOIN ordini ON impiegati.id_impiegato = ordini.id_impiegato
INNER JOIN dettagli_ordini ON ordini.id_ordine = dettagli_ordini.id_ordine INNER
JOIN prodotti ON dettagli_ordini.id_prodotto = prodotti.id_prodotto
WHERE prodotti.nome_prodotto != Tarte au sucre OR prodotti.nome_prodotto IS NULL
GROUP BY impiegati.nome, impiegati.cognome

-- 4) Quali clienti non hanno fatto ordini

SELECT clienti.contatto
FROM clienti LEFT JOIN ordini ON clienti.id_cliente = ordini.id_cliente
WHERE ordini.id_ordine IS NULL

-- 5) Quali corrieri non hanno lavorato ad alcun ordine

SELECT corrieri.id_corriere
FROM corrieri LEFT JOIN ordini ON corrieri.id_corriere = ordini.id_corriere
WHERE ordini.id_ordine IS NULL

-- 6) Elencare tutti gli ordini ricevuti nell’ultimo giorno utile di


contabilizzazione (ultimo giorno utili di contabilizzazione equivale alla data
ordine più grande)

SELECT ordini.id_ordine, ordini.data_ordine


FROM ordini
HAVING ordini.data_ordine = (SELECT MAX(ordini.data_ordine) FROM ordini)
-- 7) contare gli ordini che fanno capo a clienti non inglesi

SELECT COUNT(ordini.id_ordine)
FROM ordini INNER JOIN clienti ON ordini.id_cliente = clienti.id_cliente
WHERE clienti.paese != Gran Bretagna

-- 8) trovare tutti i clienti che hanno ordinato almeno una volta il prodotto
“Geitost”

SELECT clienti.contatto
FROM clienti INNER JOIN ordini ON clienti.id_cliente = ordini.id_cliente INNER JOIN
dettagli_ordini ON ordini.id_ordine = dettagli_ordini.id_ordine INNER JOIN prodotti
ON dettagli_ordini.id_prodotto = prodotti.id_prodotto
WHERE prodotti.nome_prodotto = Geitost
GROUP BY clienti.id_cliente

-- 9) Contare per ogni cliente della query precedente quante volte hanno ordinato
“Geitost”

SELECT clienti.contatto, COUNT(prodotti.id_prodotto)


FROM clienti INNER JOIN ordini ON clienti.id_cliente = ordini.id_cliente INNER JOIN
dettagli_ordini ON ordini.id_ordine = dettagli_ordini.id_ordine INNER JOIN prodotti
ON dettagli_ordini.id_prodotto = prodotti.id_prodotto
WHERE prodotti.nome_prodotto = Geitost
GROUP BY clienti.id_cliente

Potrebbero piacerti anche