select * from [Order Details]
--Seleccione todos los campos de la tabla detalle de la orden, ordenada por cantidad
pedida. Ascendentemente.
select * from [Order Details] order by Quantity asc
--Obtener todos los productos, cuyo nombre comienzan con la letra P y tienen un precio
unitario comprendido entre 10 y 120:
select *from Products
select * from Products where ProductName like 'p%' and UnitPrice between 10 and 120
--Obtener todos os clientes de los países de: USA, Francia y UK:
--select *from Customers
select * from Customers where Country in ('USA', 'France', 'UK')
--Obtener todos los productos descontinuados y sin stock, que pertenecen a la categoria
1, 3, 4 y 7.
--select *from Products
select *from Products where (Discontinued = 1 and UnitsInStock = 0) and CategoryID in
(1,3,4,7)
--Obtener todas las órdenes hechas por el empleado con código: 2, 5 y 7 en el año 1996
--select * from Orders
select * from Orders where EmployeeID in (2,5,7) and year(OrderDate)= '1996'
--Seleccionar todos los campos del cliente, cuya compania empiecen con letraA hata la D y
pertenezcan al pais de USA, ordenarlos por la direccion.
--select * from Customers
select * from Customers where CompanyName like ('[a-d]%') order by Address
-- Seleccionar todos los campos del cliente, cuya compania empiecen con las letras de la
B a la G, y pertenezcan al pais de UK,
--ordenarlos por nombre de la compania
select * from Customers where CompanyName like ('[b-g]%') and Country = 'UK' order by
CompanyName
/*Seleccionar los productos vigentes cuyos precios unitarios están entre 35 y
250, sin stock en almacen, pertenecientes a las categorias 1, 3, 4, 7 y 8,
que son distribuidos por los proveedores, 2, 4, 6, 7, 8 y 9*/
--select * from Products
select * from Products where UnitPrice between 35 and 250 and SupplierID in
(2,4,6,7,9)
use Northwind
/* seleccionar todos los campos de los productos descontinuados, que
pertenezcan a los proveedores con códigos: 1, 3, 7, 8 y 9, que tengan
stock en almacén, y al mismo tiempo que sus precios unitarios estén entre
39 y 190, ordenados por código de proveedores y precio unitario de manera
ascendente. */
select * from Products where SupplierID in (1,3,7,8,9) and UnitsInStock >0
and UnitPrice between 39 and 190 order by SupplierID, UnitPrice asc
/* Seleccionar las órdenes de compra, realizadas por el empleado con código
entre el 2 y 5, además de los clientes con código que comienzan con las
letras de la A hasta la G, del 31 de julio de cualquier año.*/
--select * from Orders
select *from Orders where EmployeeID between 2 and 5 and CustomerID like ('[a-g]%')
and datepart (dd,OrderDate)=31 and DATEPART (mm,OrderDate)= 7
/* Seleccionar las órdenes de compra, realizadas por el cliente con código 3,
de cualquier año pero solo de los úlimos 5 meses (agosto-Diciembre)*/
select *from Orders where EmployeeID = 3 and Month (OrderDate) in (8,9,10,11,12)
----------EJERCICIOS INNER JOIN-------------------
--select * from Suppliers
-- Describa el nombre de la compania, el nombre del producto y el precio unitario.
select [Link], [Link], UnitPrice
from Suppliers AS s
inner join Products as p
on [Link] = [Link]
/* Código de la orden de compra, fecha de la orden de compra, el código del
producto, el nombre de producto, y la cantidad pedida.*/
select * from [Order Details]
select [Link], [Link], [Link], [Link], [Link]
from Orders as o
inner join [Order Details] as od
on [Link] = [Link]
inner join Products as p
on [Link] = [Link]
/*Select OrderID, OrderDate, ProductID, ProductName, Quantity
from Orders AS o
inner join [Order Details] AS od on [Link] = [Link]
inner join Products AS p on [Link] = [Link]*/
/* traer a los clientes que tengan al menos un pedido*/
--select *from Customers
select OrderID, [Link], CompanyName, OrderDate
from Customers C INNER JOIN Orders O on [Link] = [Link]
SELECT [Link], [Link], [Link], [Link]
from Orders as o
inner join Customers as c on [Link] = [Link]
/*Obtener todas las ordenes hechas por el empleado King Robert*/
--select *from Employees
select* from [Order Details]
/* Mostrar el número de la orden, fecha, código del producto, precio,
código del empleado y su nombre completo.*/
Select [Link], OrderDate, ProductID,UnitPrice, [Link], (lastname+ ' '
+Firstname)
from Orders As o
inner join [Order Details] as od on [Link] = [Link]
inner join Employees as e on [Link] = [Link]
/* Seleccionar todos los campos de clientes,cuya compania empiececon la letra B y
pertenezcan a UK ,ordenar por nombre de la compania*/
select *from Customers where CompanyName like 'B%' and Country = 'UK' order by
CompanyName desc
/* Visualizar el nombre y el id de la compania del cliente,fecha,precio unitario y
producto de la orden*/
select [Link],[Link],CompanyName, [Link], [Link], [Link]
from Customers as c
inner join Orders as o on
[Link] = [Link]
inner join [Order Details] as od on
[Link] = [Link]
inner join Products as p on
[Link] = [Link]
SELECT [Link],CompanyName,[Link],[Link],
[Link],[Link]
FROM Customers AS C
INNER JOIN Orders AS O
ON [Link]=[Link]
INNER JOIN [Order Details] AS OD
ON [Link]=[Link]
INNER JOIN Products AS P
ON [Link]=[Link]
-----------EJERCICIOS COMBINADOS CON INNER JOIN Y GROUP BY------------------------
/* Visualizar el nombre de la categoria y el numero de productos que hay por cada
categoria.*/
select [Link], count (*) as 'Total de Productos'
from Categories as c
inner join Products as p on
[Link] = [Link]
group by CategoryName
select [Link], count ([Link]) as 'Total Productos'
from Categories
inner join Products on [Link] = [Link]
group by CategoryName
/* Seleccionar los 5 productos mas vendidos*/
SELECT TOP 5 ProductName,SUM(Quantity) as 'Productos mas vendidos'
FROM [Order Details] AS D
INNER JOIN Products AS P
ON [Link]=[Link]
GROUP BY ProductName
ORDER BY SUM(Quantity)
/* Obtener todas las ordenes hechas por el empleado King Robert,Davolio Nancy y Fuller
Andrew*/
select [Link], [Link],(LastName+ ' ' +FirstName) as ' Nombre Completo de
Empleado'
from Orders as o
inner join Employees as e on
[Link] = [Link]
where ([Link]+ ' ' +[Link]) in ('King', 'Robert', 'Davolio', 'Nancy', 'Fuller
Andrew')
/* Obtener todos los productos(codigo,nombre,precio,stock) de las ordenes hechas desde
1997 hasta la fecha de hoy*/
select [Link], [Link], ProductName, [Link], UnitsInStock
from Products as p
inner join [Order Details] as od
on [Link] = [Link]
inner join Orders as o
on [Link] = [Link]
where year ([Link]) between 1997 and 2020
/*Obtener el Nombre del cliente,Nombre del Proveedor,Nombre del
empleado y el nombre de los productos que estan en la orden 10794*/
SELECT [Link],[Link],[Link],FirstName,ProductName
FROM Customers AS C
INNER JOIN Orders AS O
ON [Link]=[Link]
INNER JOIN Employees AS E
ON [Link]=[Link]
INNER JOIN [Order Details] AS OD
ON [Link]=[Link]
INNER JOIN Products AS P
ON [Link]=[Link]
INNER JOIN Suppliers AS S
ON [Link]=[Link]
WHERE [Link]=10794
---------------utilizando UNION -----------------------
/* Listar los Productos de Categoria 1 y los productos de la categoria 05*/
--use Northwind
--select *from Products
select *from Products where CategoryID = 1
union
select * from Products where CategoryID = 5
/* Listar Los Clientes de Francia (France), España (Spain) y Canada.*/
--select *from Customers
select CustomerID as 'Codigo', CompanyName as 'Cliente', Country as 'Pais'
from Customers where Country = 'France'
union
select CustomerID as 'Codigo', CompanyName as 'Cliente', Country as 'Pais'
from Customers where Country = 'Spain'
union
select CustomerID as 'Codigo', CompanyName as 'Cliente', Country as 'Pais'
from Customers where Country = 'Canada'
order by Pais, Cliente
/* Listar los proveedores que tienen mas de 03 productos registrados o lo que tienen un
producto.
Ordenado por cantidad de productos descendentemente*/
--select *from Suppliers
select [Link], [Link], [Link], (select COUNT ([Link])
from Products as p where [Link] = [Link]) As 'Cantidad de Productos'
from Suppliers as s where (select count ([Link]) from Products as p where
[Link] = [Link])>3
union
select [Link], [Link], [Link],
(select count([Link])
from Products As P where [Link]= [Link])
As 'Cantidad de Productos'
from Suppliers As S
where (select count([Link])
from Products As P where [Link]= [Link]) = 1
order by [Cantidad de Productos] desc