-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathejercicioP2.sql
More file actions
84 lines (74 loc) · 3.6 KB
/
Copy pathejercicioP2.sql
File metadata and controls
84 lines (74 loc) · 3.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/* 01.- Determinar el número de productos por cada línea de productos.*/
SELECT productlines.productLine, count(*)
FROM productlines
INNER JOIN products ON products.productLine = productlines.productLine
GROUP BY productlines.productLine;
/* 02.- Calcular el precio promedio de los productos de cada línea de productos.*/
SELECT productlines.productLine, AVG(products.MSRP)
FROM productlines
INNER JOIN products ON products.productLine = productlines.productLine
GROUP BY productlines.productLine;
/* 03.- Listar los montos comprados de todos los productos, del mayor al menor.*/
SELECT productCode, SUM(buyPrice*quantityInStock) as Total FROM products
GROUP BY productCode
ORDER BY Total DESC;
/* 04.- Determinar la orden de compra que tiene el monto más alto.*/
SELECT orderdetails.orderNumber, SUM(orderdetails.quantityOrdered * orderdetails.priceEach) AS total
FROM orderdetails
GROUP BY total
ORDER BY orderdetails.orderNumber DESC;
/* 05.- Listar las unidades compradas (por los clientes) de todos los productos, del menor al mayor.*/
SELECT products.productCode, SUM(orderdetails.quantityOrdered) as "total"
FROM orders
INNER JOIN orderdetails ON orderdetails.orderNumber = orders.orderNumber
INNER JOIN products ON products.productCode = orderdetails.productCode
GROUP BY products.productCode
ORDER BY total ASC
/* 06.- Determinar los productos que han sido cancelados y listarlos por unidades vendidas, de manera descendente.*/
SELECT products.productCode, orders.status, SUM(orderdetails.quantityOrdered)
FROM products, orderdetails, orders
WHERE
products.productCode = orderdetails.productCode
AND
orders.orderNumber = orderdetails.orderNumber
AND
orders.status = 'Cancelled'
GROUP BY products.productCode;
/* 07.- Determinar cuál es la escala de productos que mejor se vende.*/
SELECT products.productScale, SUM(orderdetails.quantityOrdered) as "total"
FROM orders
INNER JOIN orderdetails ON orderdetails.orderNumber = orders.orderNumber
INNER JOIN products ON products.productCode = orderdetails.productCode
GROUP BY products.productScale
ORDER BY total DESC;
/* 08.- Determinar, por cada año y estatus, los montos facturados, para los estatus Shipped y Resolved.*/
SELECT YEAR(orders.orderDate) as "anio", orders.status, SUM(orderdetails.quantityOrdered * orderdetails.priceEach) as "total"
FROM orders
INNER JOIN orderdetails ON orderdetails.orderNumber = orders.orderNumber
WHERE orders.status IN ("Shipped", "Resolved")
GROUP BY anio, orders.status
/* 09.- Listar, en orden descendente, los montos de lo comprado por los distintos cliente.*/
SELECT customers.customerNumber, SUM(orderdetails.quantityOrdered * orderdetails.priceEach) as total
FROM orders, orderdetails, customers
WHERE
orderdetails.orderNumber = orders.orderNumber
AND orders.customerNumber = customers.customerNumber
GROUP BY customers.customerNumber
ORDER BY total DESC;
/* 10.- Determinar los países de los clientes que más han comprado.*/
SELECT country, SUM(orderdetails.quantityOrdered * orderdetails.priceEach) as total
FROM orders, orderdetails, customers
WHERE
orderdetails.orderNumber = orders.orderNumber
AND orders.customerNumber = customers.customerNumber
GROUP BY country
ORDER BY total DESC;
/* 11.- Listar, en orden descendente, del mejor a peor vendedor.*/
SELECT employeeNumber, firstName, lastName, SUM(orderdetails.quantityOrdered * orderdetails.priceEach) as total
FROM orders, orderdetails, customers, employees
WHERE
employees.employeeNumber = customers.salesRepEmployeeNumber
AND orderdetails.orderNumber = orders.orderNumber
AND orders.customerNumber = customers.customerNumber
GROUP BY employeeNumber
ORDER BY total DESC;