Está en la página 1de 5

Pamela Ordóñez

Deber
SQL - ClassicModels

USE classicmodels;

-- 1. Muestre los productos que cuesten mas de $500, pero menos de $2500.

SELECT * FROM products WHERE buyPrice BETWEEN 500 AND 2500;

-- 2. Muestre el promedio de ventas por oficina, siempre y cuando la suma de ventas


sean mayores que $35.000

SELECT emp.officeCode,
AVG(amount) 'Promedio de ventas'
FROM payments pym
JOIN customers cus ON (pym.customerNumber = cus.customerNumber)
JOIN employees emp ON (cus.salesRepEmployeeNumber =
emp.employeeNumber)
GROUP BY emp.officeCode
HAVING SUM(amount) > 35000;

-- 3. Indique el número de productos por línea de producto.

SELECT pdl.productLine,
COUNT(*) 'Numero de productos'
FROM products pd
JOIN productlines pdl ON (pd.productLine = pdl.productLine)
GROUP BY pdl.productLine;
-- 4. Muestre los empleados que NO trabajan en la Ciudad de Boston o en la ciudad
de Paris.

SELECT emp.employeeNumber,
emp.lastName,
emp.firstName
FROM employees emp
JOIN offices off ON (emp.officeCode = off.officeCode)
WHERE emp.employeeNumber NOT IN ('Boston', 'Paris');

-- 5. Muestre el número de productos por vendedor(productVendor) siempre y


cuando vendan mas de 5 productos.

SELECT pd.productVendor,
COUNT(*) 'Numero de productos'
FROM products pd
GROUP BY pd.productVendor
HAVING COUNT(*) > 5;
-- 6. Muestre el promedio de pagos realizados por cliente.

SELECT pym.customerNumber,
cus.customerName,
AVG(pym.amount) 'Promedio de pagos'
FROM payments pym
JOIN customers cus ON (pym.customerNumber = cus.customerNumber)
GROUP BY pym.customerNumber;

-- 7. Muestre el nombre, apellido y total pagos de los clientes cuyo valor sea menor a
$110.000.

SELECT cus.contactLastName,
cus.contactFirstName,
SUM(pym.amount) 'Total pagado'
FROM payments pym
JOIN customers cus ON (pym.customerNumber = cus.customerNumber)
GROUP BY pym.customerNumber
HAVING SUM(pym.amount) < 110000;
-- 8. Muestre cuántos pedidos ha realizado los clientes cuyo apellido incluye las letras
‘ar’.

SELECT cus.customerName,
cus.contactLastName,
COUNT(*) 'Numero de pedidos'
FROM orderdetails odd
JOIN orders ord ON (odd.orderNumber = ord.orderNumber)
JOIN customers cus ON (ord.customerNumber = cus.customerNumber)
WHERE cus.contactLastName LIKE '%ar%'
GROUP BY odd.orderNumber;

-- 9. Muestre la cantidad de órdenes enviadas en el mes de Marzo por oficina.

SELECT emp.officeCode,
COUNT(orderNumber) 'Numero de ordenes'
FROM orders ord
JOIN customers cus ON (ord.customerNumber = cus.customerNumber)
JOIN employees emp ON (cus.salesRepEmployeeNumber = emp.employeeNumber)
WHERE (ord.status = 'Shipped') AND (ord.shippedDate BETWEEN '2005-03-01' AND
'2005-03-31')
GROUP BY emp.officeCode;
-- 10. Muestre los productos vendidos por todos los empleados que trabajan en las
oficinas de Paris.

SELECT DISTINCT prd.productName


FROM orderdetails odd
JOIN orders ord ON (odd.orderNumber = ord.orderNumber)
JOIN customers cus ON (ord.customerNumber = cus.customerNumber)
JOIN employees emp ON (cus.salesRepEmployeeNumber =
emp.employeeNumber)
JOIN offices off ON (emp.officeCode = off.officeCode)
JOIN products prd ON (odd.productCode = prd.productCode)
WHERE off.city = 'Paris';

También podría gustarte