Está en la página 1de 2

-- clase 06/03/2021

-- crear un procedimiento que consulte 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, ingresando el rango con el cual empieza
el
-- nombre de la compania proveedora (ej: A a la Z), además la cantidad pedida
--del producto que debe estar entre dos valores ingresados por variables.

alter procedure sp_intervalos


@pvarible int,
@svariable int,
@letra1 varchar(1),
@letra2 varchar (1)
as
select
C.CompanyName,C.ContactName,O.OrderID,O.OrderDate,P.ProductID,OD.Quantity,P.Produ
ctName,
S.CompanyName as 'Compania proveedora'
from Customers C inner join Orders O on O.CustomerID=C.CustomerID
inner join OrderDetails OD on
OD.OrderID=O.OrderID
inner join Products P on
P.ProductID=OD.ProductID
inner join Suppliers S on
S.SupplierID=p.SupplierID
where (s.CompanyName like '['+@letra1+'-'+@letra2+']'+'%') and
(OD.Quantity between @pvarible and @svariable)

sp_intervalos 5,10,A,K

--Necesito realizar un procedimiento almacenado que reciba como parámetro el año.


--Calcular la cantidad de órdenes y recaudaciones hechas por un empleado para un
determinado año.
--Aplicar una comisión del 25 % en caso que la cantidad de órdenes supere el
promedio de ese año.
--Promedio=(Cantidad de órdenes / Número de Empleados) de lo contrario solo
aplicar el 10%

alter procedure sp_almacenado


@anio int

AS
declare @Promedio INt
declare @CantOrdenes INT
declare @CantEmpleado INT
declare @Comisión MONEY
SET @CantOrdenes = (SELECT COUNT(o.OrderID) FROM Orders o WHERE YEAR(o.OrderDate)
= 1997)
SET @CantEmpleado = (SELECT COUNT(*) FROM Employees)
SET @Promedio = (@CantOrdenes/@CantEmpleado)
IF(@CantOrdenes > @Promedio)
BEGIN
SET @Comisión = 0.25
END
ELSE
BEGIN
SET @Comisión = 0.10
END
SELECT
o.EmployeeID AS IdEmpleado,
e.FirstName AS [Primer Nombre],
COUNT(o.OrderID) AS [Cantidad de Órdenes],
SUM(od.UnitPrice) AS [Recaudación],
SUM(od.UnitPrice * @Comisión) AS Comisión
FROM Orders o
INNER JOIN OrderDetails od ON o.OrderID = od.OrderID
INNER JOIN Employees e ON o.EmployeeID = e.EmployeeID
WHERE YEAR(o.OrderDate) = @anio
GROUP BY o.EmployeeID, e.FirstName

sp_almacenado 1996

También podría gustarte