All pastes #343912 Raw Edit

Someone

public text v1 · immutable
·published 2007-02-07 11:34 UTC
rendered paste body
/*Mazzuola || Ercolini*/

/*
Elenco prodotti con prezzo superiore alla media
 */
SELECT ProductName FROM Products WHERE UnitPrice > (SELECT avg(UnitPrice) FROM
Products);

/*
Nome del prodotto/i con prezzo massimo
*/
SELECT ProductName FROM Products WHERE UnitPrice = (SELECT MAX(UnitPrice) FROM
Products);

/*
Elenco articoli che non sono mai stati ordinati
*/
SELECT ProductName FROM Products
WHERE Products.ProductID NOT IN (
SELECT [Order Details].ProductID FROM [Order Details]);

/*
Elenco clienti che hanno effettuato almeno un ordine con piu di 5 prodotti
*/

SELECT CompanyName, Customers.CustomerID, COUNT([Order Details].OrderID) AS Num FROM Customers,Orders,[Order Details]
WHERE Orders.CustomerID = Customers.CustomerID
AND Orders.OrderID = [Order Details].OrderID
GROUP BY [Order Details].OrderID, CompanyName, Customers.CustomerID HAVING COUNT([Order Details].OrderID) > 5;

/*
In quale paese/stati abbiamo piu clienti
*/

SELECT TOP 1 Country, COUNT(CompanyName) as Num FROM Customers
WHERE Country != ''
GROUP BY Country
ORDER BY Num DESC;

/*
Quale categoria ha meno prodotti
*/

SELECT TOP 1 CategoryName, COUNT(ProductID) as Num FROM Categories, Products
WHERE Products.CategoryID = Categories.CategoryID
GROUP BY CategoryName
ORDER BY Num ASC;

/*
Cliente che hanno fatto piu ordini
*/

SELECT TOP 1 CompanyName, COUNT(*) as Num FROM Customers, Orders
WHERE Orders.CustomerID = Customers.CustomerID
GROUP BY CompanyName
ORDER BY Num DESC;

/*
Clienti che hanno ordinato piu di 30 prodotti diversi (anche piu ordini)
*/

drop table t555 /* si cancella la tabelle temporanea t555*/
/* si estraggono */
SELECT DISTINCT dbo.[Order Details].ProductID as prodotto, dbo.Orders.CustomerID, dbo.customers.companyname as cliente into t555
FROM dbo.Orders INNER JOIN
	dbo.[Order Details] ON dbo.Orders.OrderID = dbo.[Order Details].OrderID
						inner join dbo.customers on dbo.Orders.customerID=dbo.customers.customerID
GROUP BY dbo.Orders.CustomerID, dbo.customers.companyname, dbo.[Order Details].ProductID

select customerID,cliente,count(prodotto)
from t555 
group by customerID, cliente
having count(prodotto)>30
order by count(prodotto)desc;