first commit
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
#####################################################
|
||||
###################### Task 2: ##################
|
||||
|
||||
1. Створіть збережену процедуру, яка довзволить вивести вартість замовлення із врахуванням знижки.
|
||||
Як вхідний параметр процедура повинна використовувати значення ідентифікатора замовлення (OrderID).
|
||||
Умови знижки:
|
||||
• якщо кількість товару у замовлення >= 20, тоді знижка становить 20%;
|
||||
|
||||
• якщо кількість товару у замовленні < 20 і >= 10, тоді знижка становить 10%;
|
||||
|
||||
• в іншому випадку знижка не передбачена.
|
||||
2. Викличте створену процедуру зі значення ідентифікатора замовлення OrderID = 5.
|
||||
#####################################################
|
||||
|
||||
drop procedure if exists CalculateDiscountedCost;
|
||||
|
||||
create procedure CalculateDiscountedCost(in order_id int)
|
||||
begin
|
||||
declare v_cost decimal(10,2);
|
||||
declare v_discount decimal(5,2);
|
||||
declare v_final_cost decimal(10,2);
|
||||
declare v_quantity int;
|
||||
|
||||
select Cost, Quantity into v_cost, v_quantity
|
||||
from Orders
|
||||
where OrderID = order_id;
|
||||
|
||||
if v_quantity >= 20 then
|
||||
set v_discount = 0.20;
|
||||
elseif v_quantity >= 10 then
|
||||
set v_discount = 0.10;
|
||||
else
|
||||
set v_discount = 0.00;
|
||||
end if;
|
||||
|
||||
set v_final_cost = v_cost * (1 - v_discount);
|
||||
select v_final_cost as FinalCost, v_cost as Cost, v_discount as Discount, v_quantity as Quantity, v_cost - v_cost * (1 - v_discount) as DiscountAmount;
|
||||
end
|
||||
|
||||
set @OrderID = 8;
|
||||
|
||||
call CalculateDiscountedCost (@OrderID);
|
||||
Reference in New Issue
Block a user