first commit
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
-- use OrdersDB;
|
||||
|
||||
-- use OrdersDB_2;
|
||||
|
||||
-- -- Створіть процедуру без параметрів з назвою Agregate_Amt,
|
||||
-- -- яка після виклику дозволить вивести таку інформацію:
|
||||
-- -- sname – ім’я продавця
|
||||
-- -- s_Avg_Amt – середнє значення угоди продавця
|
||||
-- -- Avg_Amt – середнє значення усіх угод
|
||||
-- -- s_Max _Amt – максимальне значення угоди продавця
|
||||
-- -- Max _Amt – максимальне значення усіх угод
|
||||
-- -- s_Min _Amt – мінімальне значення угоди продавця
|
||||
-- -- Min _Amt – мінімальна значення усіх угод
|
||||
-- -- Інформацію відсортуйте за s_Avg_Amt
|
||||
-- -- Викличте процедуру, щоб переконатися у правильності її роботи
|
||||
|
||||
-- create procedure Agregate_Amt()
|
||||
-- begin
|
||||
-- select
|
||||
-- s.sname,
|
||||
-- avg(o.amt) as s_Avg_Amt,
|
||||
-- (select avg(amt) from Orders) as Avg_Amt,
|
||||
-- max(o.amt) as s_Max_Amt,
|
||||
-- (select max(amt) from Orders) as Max_Amt,
|
||||
-- min(o.amt) as s_Min_Amt,
|
||||
-- (select min(amt) from Orders) as Min_Amt
|
||||
-- from Orders o
|
||||
-- join Salespeople s on o.snum = s.snum
|
||||
-- group by s.sname
|
||||
-- order by s_Avg_Amt;
|
||||
-- end
|
||||
|
||||
-- drop procedure if exists Agregate_Amt;
|
||||
|
||||
-- call Agregate_Amt ();
|
||||
@@ -0,0 +1,33 @@
|
||||
-- Створіть процедуру з параметрами з назвою Sum_Amt_of_Cust_Period,
|
||||
-- яка дозовлить переглялянути загальну суму усіх угод (c_Sum_Amt) вказаного покупця за обраний період
|
||||
-- у якості вхідних параметрів використайте:
|
||||
-- ім'я покупця
|
||||
-- дату початку періоду
|
||||
-- дату кінця періоду
|
||||
-- Викличте процедуру, щоб переконатися у правильності її роботи
|
||||
-- спробуйте різні параметри
|
||||
|
||||
use OrdersDB;
|
||||
|
||||
select * from Customers;
|
||||
|
||||
create procedure Sum_Amt_of_Cust_Period(
|
||||
cust_name varchar(50),
|
||||
start_date date,
|
||||
end_date date
|
||||
)
|
||||
begin
|
||||
select
|
||||
c.cname,
|
||||
sum(o.amt) as c_Sum_Amt
|
||||
from Customers c
|
||||
join Orders o on c.cnum = o.cnum
|
||||
where c.cname = cust_name and o.odate between start_date and end_date
|
||||
group by c.cname;
|
||||
end
|
||||
|
||||
drop procedure if exists Sum_Amt_of_Cust_Period;
|
||||
|
||||
call Sum_Amt_of_Cust_Period ( 'Grass', '1990-10-03', '1990-10-06' );
|
||||
|
||||
call Sum_Amt_of_Cust_Period ( 'Grass', '1990-10-03', '1990-10-04' );
|
||||
Reference in New Issue
Block a user