Está en la página 1de 2

1: Crear un procedimiento almacenado de nombre sp_ProductosXproveedor,

--que permita mostrar el nombre de compañía del proveedor, nombre de categoría,


--cantidad de productos, pero deben ser filtrados por el rango de unidades en existencia
-- a través de variables locales.

create procedure p_ProductosXproveedor


@existencia int
as
select p.NombreCompañia,c.NombreCategoria,count(pr.IdProducto) as [cantidad de productos]
from Proveedores as p join Productos as pr
on p.IdProveedor=pr.IdProveedor join Categorias as c on c.IdCategoria = pr.IdCategoria
where pr.UnidadesEnExistencia = @existencia
group by p.NombreCompañia,c.NombreCategoria

execute p_ProductosXproveedor 4

--2: Mostrar el nombre y apellidos del empleado en un solo campo,


-- nombre contacto (cliente), el importe total del pedido, año de pedido,
-- Nombre de compañía de envío, Nombre de país de destinatario, fecha de pedido,
-- fecha de entrega pero solo deben ser filtrados por nombre de país de destinatario a
-- través de la variable @pais (debe permitir buscar como mínimo buscar 3 países).

create procedure p_Paisxpedido


@pais varchar(100)
as
select p.IdPedido,e.Nombre+' '+e.Apellidos as NOMBRE,c.NombreContacto, sum(d.PrecioUnidad*d.Cantidad-
d.Descuento) as[importe total],
year(p.FechaPedido) as [año de pedido],c.NombreCompañia,p.PaisDestinatario,p.FechaPedido,p.FechaEntrega
from empleados as e join pedidos as p on e.IdEmpleado = p.IdEmpleado
join [Detalles de pedidos] as d on p.IdPedido = d.IdPedido
join Clientes as c on p.IdCliente=c.IdCliente
where p.PaisDestinatario in (@pais)
group by
e.Nombre,e.Apellidos,c.NombreContacto,p.IdPedido,p.FechaPedido,c.NombreCompañia,p.PaisDestinatario,P.FechaEntr
ega

execute p_Paisxpedido 'Alemania','Brasil','Francia'

--3: Crear un sp de nombre sp_productosVendidosXaño que permita mostrar el nombre de categoría,


--nombre del producto, cantidad de productos, año de pedido; pero estos
--deben ser filtrados a través de un parámetro @año.
create procedure sp_productosVendidosXaño
@año char(4)
as
select c.NombreCategoria,p.NombreProducto,p.CantidadPorUnidad,year(pe.FechaPedido ) as año
from Categorias as c join Productos as p on c.IdCategoria=p.IdCategoria
join [Detalles de pedidos] as dp on p.IdProducto =dp.IdProducto join Pedidos as pe on pe.IdPedido=dp.IdPedido
where year(pe.FechaPedido ) = @año

execute sp_productosVendidosXaño 1995


--4: Crear una consulta para mostrar el nombre de compañía (compañía de envíos),
-- cantidad de forma de forma de envíos, fecha de pedido, pero solos del año 1991 y 1994.

select p.FormaEnvio,p.FechaPedido,c.NombreCompañia
from pedidos as p join [Compañias de envios] as c
on c.IdCompañíaEnvios = c.IdCompañíaEnvio
where year(p.fechapedido) in (1991,1994)

alter table pedidos


add colum IdCompañíaEnvios int
add constraint fk_comp foreign key (IdCompañíaEnvios)
references compañiaenvios(IdCompañíaEnvios)

También podría gustarte