Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 2

1)

create procedure Task5 @year int, @name varchar(40)


as
SELECT SUM(([Цена за день (В грн.)] * (1 + DATEDIFF(DAY, [From], [To])))) as Summa,
C.Name+C.Surname as Client, @name as [Name of bicycle]
From Clients as C, [Rent date] as R, Bicycle as B, [Пункт велопроката] as P
where YEAR([From]) = @year and B.IdBicycle = R.BicycleId and B.Name = @name and
R.ClientId = C.IdClient and(1 + DATEDIFF(DAY, [From], [To]))BETWEEN [Дней с] AND [Дней
по]
group by B.Name, C.Name, C.Surname, R.[To], R.[From], P.[Цена за день (В грн.)]
go
exec Task1 2016,'Giant'

2)
create procedure Task2 @id_rent int
as
UPDATE [Rent date]
SET [To] = CONVERT(date, getdate())
WHERE @id_rent = [Rent date].IdRent
go
exec Task2 32

3)
create procedure Task3 @type varchar(40), @year int, @month int, @name varchar(25)
output, @type_velika varchar(25) output, @kolichstvo_raz int output
as
Select @name = B.Name, @type_velika = T.Type, @kolichstvo_raz = COUNT(Name)
From Bicycle as B, [Rent date] as R, TypesOfBicycle as T
where B.IdType = T.IdType and B.IdBicycle = R.BicycleId and YEAR([To]) = @year and
MONTH([To]) = @month and T.Type like @type
group by B.Name, T.Type
go
declare @name varchar(25), @type_velika varchar(25), @kolichstvo_raz int
execute Task3 'Город%', 2016, 10, @name output, @type_velika output, @kolichstvo_raz
output
select 'Велосипед:', @name, 'Тип:', @type_velika, 'Количество раз:', @kolichstvo_raz

4)
create procedure Task4 @name nchar(20) output
as
declare @pinter int = (select max(IdRent) from [Rent date])
Select @name = B.Name
From Bicycle as B, [Rent date] as R
where B.IdBicycle = R.BicycleId and R.IdRent = @pinter
go
declare @name nchar(20)
execute Task4 @name output
select 'Name is ', @name

Пратическое задание
create VIEW myview (NameOfBicycle, NameOfClient, Summa)
as
select B.Name, C.Name +' ' + C.Surname as 'Client', ([Цена за день (В грн.)] * (1 +
DATEDIFF(DAY, [From], [To]))) as Summa
from [Rent date] as R, [Пункт велопроката] as P, Bicycle as B, Clients as C
where B.IdBicycle = R.BicycleId and C.IdClient = R.ClientId and (1 + DATEDIFF(DAY,
[From], [To]))BETWEEN [Дней с] AND [Дней по] and YEAR([From]) = 2018
group by B.Name, C.Name, C.Surname, R.[To], R.[From], P.[Цена за день (В грн.)]

select * from myview

You might also like