Está en la página 1de 4

1.

Crear un procedimiento almacenado llamado “IncProductPercentage”


que recibe 2 parámetros, el código de un producto y el valor de
incremento (%) y que actualice el MSRP teniendo en cuenta el
porcentaje.
MSRP=MSRP+2%(MSRP)
CALL IncProductPercentage ('S10_2016',2);
DELIMITER $$
CREATE PROCEDURE IncProductPercentage(
IN codigoproducto VARCHAR(15),
IN aporcentaje INT
)
BEGIN
UPDATE products set MSRP=MSRP+(MSRP*aporcentaje/100)
WHERE productCode= codigoproducto;
END$$
DELIMITER ;

2. Crear un procedimiento almacenado llamado


“GetProductCountByProductLine” que permita consultar el número de
productos por líneas de producto (productLine).

CALL GetProdutCountByProductLine ('Vintage Cars',@total);


DELIMITER $$

CREATE PROCEDURE GetProdutCountByProductLine (


IN category VARCHAR(50),
OUT total INT
)
BEGIN
SELECT COUNT(ProductCode)
INTO total
FROM products
WHERE productLine = category;
END$$

DELIMITER ;

3. Crear un procedimiento almacenado llamado “productpricing” que acepta


tres parámetros: pl para almacenar el precio más bajo del producto, ph
para almacenar el precio más alto del producto y pa para almacenar el
precio promedio del producto (de todos los precios de productos en la
tabla “orderdetails”).
CALL productpricing(@pricelow,@pricehigh,@priceaverage);
SELECT @pricehigh, @pricelow, @priceaverage;

DELIMITER //

CREATE PROCEDURE productpricing(


OUT pl DECIMAL(8,2),
OUT ph DECIMAL(8,2),
OUT pa DECIMAL(8,2)
)
BEGIN
SELECT Min(priceEach)
INTO pl
FROM orderdetails;
SELECT Max(priceEach)
INTO ph
FROM orderdetails;
SELECT Avg(priceEach)
INTO pa
FROM orderdetails;
END //
DELIMITER ;

4. Crear una función llamada “CustomerRisk” que toma como parámetro el


código de cliente y devuelve un mensaje que indica el riesgo asociado al
cliente dependiendo del valor de creditlimit:

Creditlimit > 50000  ‘LOW’


Creditlimit <= 50000 and >= 10000  ‘MEDIUM
Creditlimit < 10000 and > 0  ‘HIGH’
Creditlimit =0  ‘RED_ALERT’

SELECT customerName, CustomerRisk(customerNumber)


FROM customers
ORDER BY customerName;

DELIMITER $$
CREATE FUNCTION CustomerRisk(cNumber int(11))
RETURNS VARCHAR(20)
BEGIN
DECLARE customerRisk VARCHAR(20);
DECLARE credit DECIMAL(10,2);
SELECT creditlimit FROM customers
WHERE customerNumber=cNumber INTO credit;
IF credit > 50000 THEN
SET customerRisk = 'LOW';
ELSEIF (credit <= 50000 AND
credit >= 20000) THEN
SET customerRisk = 'MEDIUM';
ELSEIF (credit < 20000 AND
credit > 0) THEN
SET customerRisk = 'HIGH';
ELSE
SET customerRisk = 'RED_ALERT';
END IF;
-- return the customer level
RETURN (customerRisk);
END $$
DELIMITER ;

5. Crear una función llamada “calcProfit” que toma dos parámetros de


entrada: el precio de compra (buyPrice) y el precio sugerido por el
proveedor (MSRP). Calcula la ganancia restando el precio de compra
del precio sugerido y luego devuelve el valor a la expresión de llamada.
SELECT *, calcProfit(buyPrice,MSRP) AS profit FROM products;
DELIMITER $$
CREATE FUNCTION calcProfit(cost DECIMAL(10,2), price DECIMAL(10,2))
RETURNS DECIMAL(9,2)
BEGIN
DECLARE profit DECIMAL(10,2);
SET profit = price-cost;
RETURN profit;
END$$
DELIMITER ;

También podría gustarte