100% encontró este documento útil (1 voto)
166 vistas5 páginas

SQL ClassicModels

Este documento contiene 10 consultas SQL realizadas sobre la base de datos classicmodels para obtener diferentes tipos de información como productos por rango de precio, promedio de ventas por oficina, número de productos por línea y proveedor, detalles sobre clientes como promedio de pagos, total pagado y número de pedidos, y número de órdenes enviadas en marzo por oficina y productos vendidos por empleados de París.

Cargado por

Ricardo Chávez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
166 vistas5 páginas

SQL ClassicModels

Este documento contiene 10 consultas SQL realizadas sobre la base de datos classicmodels para obtener diferentes tipos de información como productos por rango de precio, promedio de ventas por oficina, número de productos por línea y proveedor, detalles sobre clientes como promedio de pagos, total pagado y número de pedidos, y número de órdenes enviadas en marzo por oficina y productos vendidos por empleados de París.

Cargado por

Ricardo Chávez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 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