0% encontró este documento útil (0 votos)
99 vistas10 páginas

Productos con precio mínimo mayor a 9

El documento contiene varias consultas SQL realizadas sobre la base de datos Northwind. Las consultas incluyen seleccionar datos de tablas específicas, filtrar datos usando donde, ordenar resultados, realizar joins, agregaciones y having.
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
0% encontró este documento útil (0 votos)
99 vistas10 páginas

Productos con precio mínimo mayor a 9

El documento contiene varias consultas SQL realizadas sobre la base de datos Northwind. Las consultas incluyen seleccionar datos de tablas específicas, filtrar datos usando donde, ordenar resultados, realizar joins, agregaciones y having.
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

use Northwind

--mostrar todos los empleados y todos sus atributos.


select *
from Employees
go

--mostrar todos los productos y todos sus atributos.


select *
from Products
go

--Mostrar el código, nombre y categoría de los productos.


select ProductID,ProductName,CategoryID
from Products
go

--mostrar los productos que pertenecen a la categoría 2.


select *
from Products
where CategoryID = 2
go

--productos que pertenece a la categoría 2 y 4.


select *
from Products
where CategoryID = 2 or CategoryID = 4
go

--mostrar los productos su precio mayor de 100


select ProductID,ProductName,UnitPrice
from Products
where UnitPrice > 100
go

--Mostrar el producto tofu:


select ProductID,ProductName,UnitPrice
from Products
where ProductName like 'tofu'
go

--productos de la catergoria 2,4,6


select *
from Products
where CategoryID in(2,4,6)
go

--productos de la 3,5,8
select *
from Products
where SupplierID in(3,5,8)
go

--Mostrar los productos cuyo precio oscilan entre 30 y 60 dólares


select ProductID,ProductName, UnitPrice
from Products
where UnitPrice between 30 and 60
go

--Mostrar los productos cuyo stock es entre 0 y 10


select ProductID,ProductName,UnitPrice,UnitsInStock
from Products
where UnitsInStock between 0 and 10
go

--Mostrar todos los productos que empiezan con ‘c’


select ProductID,ProductName,UnitPrice
from Products
where ProductName like 'c%'
go

select ProductID,ProductName,UnitPrice
from Products
where ProductName like '[a-d]%'
go

--ORDER BY: sirve para ordenar las filas según el o los campos especificados.
--Desc: ordena de forma descendente. Asc: ordena de forma ascendente.
select ProductID,ProductName,UnitPrice
from Products
order by ProductName asc
go

select ProductID,ProductName,UnitPrice
from Products
order by ProductName desc
go

--Seleccione todos los campos de la tabla cliente, ordenado por nombre


-- del contacto de la compañía, alfabéticamente.

select *
from Customers
order by ContactName asc
go

--Seleccione todos los campos de la tabla órdenes, ordenados por fecha de la


orden, descendentemente.
select *
from Orders
order by OrderDate desc
go

--Seleccione todos los campos de la tabla detalle de la orden, ordenada por


cantidad pedida. Ascendentemente.
select *
from [Order Details]
order by Quantity asc
go

--Obtener todos los productos, cuyo nombre comienzan con la letra P y tienen un
precio unitario comprendido entre 10 y 120:
select*
from Products
where ProductName like 'p%' and UnitPrice between 10 and 120
go

--Obtener todos os clientes de los países de: USA, Francia y UK:


select *
from Customers
where Country in('usa','francia','uk')
--Obtener todos los productos descontinuados y sin stock, que pertenecen a la
categoria 1, 3, 4 y 7.
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
where EmployeeID in(2,5,7) and YEAR(OrderDate) = 1996

select *
from Orders
where EmployeeID in(2,5,7) and year (OrderDate) = '1996'
go

--Seleccionar todos los clientes que cuenten con Fax


select CustomerID,ContactName,Fax
from Customers
where Fax is not null
select *
from Customers
where Fax is not null
go

--Seleccionar todos los clientes que no cuenten con FAX, del País de USA
select CustomerID,ContactName,Fax,Country
from Customers
where Fax is null and Country like 'usa%'

select *
from Customers
where Country = 'usa' and Fax is null
go

--Seleccionar todos los empleados que cuentan con un jefe.


select EmployeeID,LastName,ReportsTo
from Employees
where ReportsTo is not null

select *
from Employees
where ReportsTo is not null
go

--Seleccionar todos los campos del cliente, cuya compania empiecen con letra
--A hata la D y pertenezcan al pais de USA, ordenarlos por la direccion.
select *
from Customers
where CompanyName like '[A-D]%' and Country = 'USA' order by Address asc
select *
from Customers
where CompanyName like '[A-D]%' and Country like 'usa' order by Address asc
go

--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 asc
select *
from Customers
where CompanyName like '[B-G]%' and Country = 'uk' order by CompanyName asc
go

--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
where UnitPrice between 35 and 250 and UnitsInStock = 0 and CategoryID
in(1,3,4,7,8) and SupplierID in(2,4,6,7,8,9)

select *
from Products
where UnitPrice between 35 and 250 and UnitsInStock = 0 and CategoryID
in(1,3,4,7,8) and SupplierID in(2,3,6,7,8,9)
go

--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 Discontinued = 1 and SupplierID in(1,3,7,8,9) and UnitsInStock > 0 and
UnitPrice between 39 and 190
order by SupplierID,UnitPrice asc

select *
from Products
where Discontinued = 1 and SupplierID in(1,3,7,8,9) and UnitsInStock > 0
and UnitPrice between 39 and 190 order by SupplierID, UnitPrice asc
go

--Seleccionar los 7 productos con precio más caro, que cuenten con stock en
almacén.
select top 7 *
from Products
where UnitsInStock > 0 order by UnitPrice desc
select top 7 *
from Products
where UnitsInStock >0 order by UnitPrice asc
go

--Seleccionar los 9 productos, con menos stock en almacén, que pertenezcan a la


categoria 3, 5 y 8.
select top 9 *
from Products
where CategoryID in(3,5,8) order by UnitsInStock asc

select top 9 *
from Products
where CategoryID in(3,5,8) order by UnitsInStock asc
go

--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
where EmployeeID between 2 and 5 and CustomerID like '[A-G]%' and
DATEPART(DD,OrderDate) = 31 and DATEPART(MM,OrderDate)= 7

select *
from Orders
where EmployeeID between 2 and 5 and CustomerID like '[A-G]%'
and DATEPART(dd,OrderDate) = 31 and DATEPART(mm,OrderDate) =7
go

--Seleccionar las órdenes de compra, realizadas por el empleado 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) between 8 and 12

select *
from Orders
where EmployeeID = 3 and MONTH(OrderDate) in(8,9,10,11,12)
go

select *
from Orders
where EmployeeID = 3 and MONTH(OrderDate) between 8 and 12
go

--Seleccionar los detalles de las órdenes de compra, que tengan un monto de


cantida pedida entre 10 y 250.
select OrderID,Quantity
from [Order Details]
where Quantity between 10 and 250
go

--Seleccionar los detalles de las órdenes de compras, cuyo monto del pedidio
esten entre 10 y 100.
select OrderID,Quantity,UnitPrice,Quantity*UnitPrice as total
from [Order Details]
where Quantity*UnitPrice between 10 and 100
go

select distinct country


/* DISTINCT... filta solo uno por tipo de dato, especificado en el
select */
from [Link]

--Mostrar los 15 productos más vendidos e incluyendo a los empates en el


--ultimo resgistro(PD. El operador TOP solo saca ‘N’ registros).
select top 15 WITH TIES OrderID,ProductID,Quantity
from [Order Details]
order by Quantity desc
go

--nombre de la compania del proveedor y el precio


select [Link],[Link],UnitPrice
from Suppliers as s inner join Products as p
on [Link] = [Link]
go
--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 [Link],OrderDate,[Link], [Link], [Link]
from Orders ord inner join [Order Details] as od
on [Link] = [Link] inner join Products as pr
on [Link] = [Link]
go

select (firstname + ' '+ lastname) as name, city, postalcode from Employees
union
select [Link], city, postalcode
from Customers

select COUNT(ReportsTo) as total


--count muesta los no null
from Employees

select ProductID, SUM(Quantity) as total_quantity from [Order Details]


where UnitPrice< 10 group by ProductID

--HAVING SE APLICA DESPUES DE AGRUPAR CON LOS NUEVOS REGISTROS (HAVING DEPENDE
DEL GROUP BY)
--SE DIFERENCIA DEL WHERE YA QUE ESTE SE APLICA EN LA TABLA ORIGINAL
select ProductID,SUM(Quantity) as total_quantity
from [Order Details]
group by ProductID
having ProductID = 2
go

select CategoryID, COUNT(*) as total from Products as prod


where CategoryID=4
group by [Link]
go

--Equivalencia con el comando having


select CategoryID, COUNT(*) as total from Products as prod
group by [Link]
having CategoryID=4
go

select CategoryID, COUNT(*) as total


from Products as prod
where UnitPrice between 10 and 60
group by [Link]
go

select CategoryID, COUNT(*) as total


from Products as prod
group by [Link]
having COUNT(*)<=10
go

--MUESTRAR LA CANTIDAD DE PRODUCTOS POR CATEGORIAS


select CategoryID, COUNT(*) as total
from Products as prod
group by CategoryID
go

--MOSTRAR EL NUMERO, MAXIMO Y MININO POR CATEGORIA DE LOS PRECIOS Select


[Link], MAX([Link]) as maximo,
MIN([Link]) as minimo
FROM Categories AS CA
INNER JOIN Products AS PRO ON [Link]=[Link]
GROUP BY [Link]

--MOSTRA AL EMPLEADO Y EL NUMERO DE ORDENES


select [Link], COUNT(*)
from [Link] as em
inner join orders as o on [Link]=[Link]
group by [Link]
go

--MOSTRAR: CUANTAS ORDENES A REALIZADO CADA EMPLEADO(MOSTRAR EL NOMBRE, APELLIDOS


Y NUMERO DE PEDIDOS) QUE SEAN MAYORES A 100
select [Link],[Link], COUNT(*)
from [Link] as em
inner join orders as o on [Link]=[Link]
group by [Link],[Link] having COUNT(*)>100
go

--MOSTRAR CUANTOS PRODUCTOS A COMPRADO CADA UNO DE LOS CLIENTES (MOSTRAR EL


NOMBRE DEL CLIENTE)
select [Link],SUM([Link]) as 'numero de productos'
from Customers as cu
inner join orders as o on [Link]=[Link] inner join [Order Details]
as d on [Link]=[Link]
group by [Link]
order by [Link]
go

--MOSTAR EL TOTAL PAGADO POR CADA ORDEN DE COMPRAS SOLO DEL MES DE ENERO DEL 1996
select [Link], SUM([Link]*[Link]*2.82) as total
from orders as o
inner join [Order Details] as d on [Link]=[Link]
where month ([Link])=12 and YEAR([Link])=1996
group by [Link]
go
--MOSTRAR EL NUMERO DE PRODUCTOS QUE VENDEN CADA UNO DE LOS PROVEEDORES (MOSTRAR
SU NOMBRE DE LA EMPRESA-PROVEEDOR)
--SOLO CONSIDERAR A LOS PRODUCTOS VIGENTES.
select [Link],count([Link]) as total
from Products as p
inner join Suppliers as s on [Link]=[Link]
where [Link]=0 and [Link]>0
group by [Link]
go
--Visualizar el máximo y mínimo precio de los productos por categoría, mostrar el
nombre de la categoría.

select [Link],MAX([Link]) as maximo, MIN([Link]) as minimo


from Products as pro inner join Categories as ca on [Link]=[Link]
group by [Link]

--Visualizar el máximo y mínimo precio de los productos por proveedor, mostrar el


nombre de la compañía proveedora.
select [Link],MAX([Link]) as Maximo,MIN([Link]) as Minimo
from Products as p inner join Suppliers as s on [Link] = [Link]
group by [Link]
go

--Seleccionar las categorías que tengan más 5 productos. Mostrar el nombre de la


categoría y el número de productos.
select [Link], COUNT([Link])as cantidad from Categories as ca
inner join Products as pro on [Link]=[Link]
group by [Link]
having count([Link])>5
go

--Calcular cuántos clientes existen en cada País.


select [Link] as pais, COUNT(country) as [numero de clientes]
from Customers as cu
group by Country
go

--Calcular cuántos clientes existen en cada Ciudad.


Select [Link] as ciudad, COUNT(citY) as [numero de clientes]
from Customers as cu
group by [Link]
go

--Calcular cuántos proveedores existen en cada Ciudad y País.


select city, COUNT( [Link]) as numero, country, COUNT( [Link]) as numero
from Suppliers as su
group by City, Country
go

--Calcular el stock total de los productos por cada categoría. Mostrar el nombre
de la categoría y el stock por categoría.
select [Link], SUM( [Link])
from Categories as ca
inner join Products as pro on [Link]=[Link]
group by [Link]
go

--Calcular el stock total de los productos por cada categoría. Mostrar el nombre
de la categoría y el stock por categoría.
-- Solamente las categorías 2, 5 y 8.
select [Link],[Link], SUM([Link])
from products as pro
inner join Categories as c on [Link]=[Link]
where [Link] in( 2, 5 , 8)
group by [Link],[Link]

--Obtener el nombre del cliente, nombre de proveedor, nombre del empleado y el


nombre de los productos que están en la orden 10250.
select [Link],[Link], [Link], [Link], [Link]
from orders as o
inner join Employees as e on [Link]=[Link] inner join Customers as c
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] = 10250
go

--Mostrar le numero de ordenes realizadas de cada uno de los clientes por año.
select [Link],COUNT([Link]) as [numero de ordenes], year ([Link])
as fecha
from Customers c inner join Orders as o on [Link] = [Link]
group by YEAR([Link]),[Link]
go

--Mostrar el número de órdenes realizadas de cada uno de los empleados en cada


año.
select [Link],COUNT([Link]) as [numero de ordenes],YEAR([Link]) as
fecha
from Employees as e inner join Orders as o on
[Link] = [Link]
group by YEAR([Link]),[Link]
go

--Mostrar el número de órdenes realizadas de cada uno de los clientes por cada
mes y año.
select [Link] as cliente,COUNT( [Link]) as [numero de ordenes],
MONTH([Link]) as mes, YEAR( [Link]) as año from Customers as c
inner join orders as o on [Link]=[Link]
group by [Link], month([Link]), YEAR( [Link])
go

--Contar el número de órdenes que se han realizado por año y meses.


Select COUNT([Link]) as [Numero de ordenes], MONTH([Link]) as
mes,YEAR([Link]) as año
from orders as o
group by MONTH([Link]),YEAR([Link])
go

--Seleccionar el nombre de la compañía del cliente, el código de la orden de


compra, la fecha de la orden de compra, código
-- del producto, cantidad pedida del producto, nombre del producto, el nombre de
la compañía proveedora y la ciudad del proveedor.
select [Link] as cliente, [Link],[Link],[Link] ,
[Link],[Link] as proveedor,[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 pd on [Link]=[Link]
inner join Suppliers as su on [Link]=[Link]
go

/*Seleccionar el nombre de la compañía del cliente , nombre del contacto, el


código de la orden de compra, la fecha de la
orden de compra, código del producto, cantidad pedida del producto, nombre del
producto y el nombre de la compañía proveedora,
usar Join. Solamente las compañías proveedoras que comienzan con la letra de la
A hasta la letra G, además la cantidad pedida
del producto debe estar entre 18 y 190.*/
select [Link],[Link] as contacto,
[Link],[Link],[Link] ,
[Link],[Link] as proveedor,[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 pd on [Link]=[Link]
inner join Suppliers as su on [Link]=[Link]
where ([Link] like '[a-g]%')and [Link] between 18 and 190
order by [Link]
go

/*Seleccionar cuantos proveedores tengo en cada país, considerando solo a los


nombre de los proveedores que
comienzan con la letra E hasta la letra P, además de mostrar solo los países
donde tenga más de 2 proveedores.*/

select [Link], COUNT([Link])


from suppliers as su
where [Link] like '[e-p]%'
group by [Link]
having COUNT([Link])>2
go

/*Obtener el número de productos, por cada categoría. Mostrando el nombre de la


categoría, el nombre del producto,
y el total de productos por categoría, solamente de las categorías 3, 5 y 8.
Ordenar por el nombre de la categoría.*/
select [Link] as categoria ,count( [Link]) as [numero de productos]
from products as pd
inner join Categories as ca on [Link]=[Link]
group by [Link]
go

--Mostar el nombre de la orden, la fecha de la orden y el total en soles de cada


orden .
select [Link],[Link],[Link]*[Link] as total from orders as
o
inner join [Order Details] as od on [Link]=[Link]

--Mostrar el nombre de producto y en cuantas órdenes de compra se encuentra.


select [Link], COUNT([Link]) as [productos en ordenes]
from products as pd
inner join [Order Details] as od on [Link]=[Link]
group by [Link]

También podría gustarte