Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursovik.doc
Скачиваний:
10
Добавлен:
31.07.2019
Размер:
181.25 Кб
Скачать

Тексты sql-запросов к базе данных:

Запрос 1:

Проверить наличие товара на складе

Select w.ProductName as InStock, w.Quantity

from dbo.Warehouse as w

where w.Quantity > 0

Реализация функции, вычисляющей есть ли товар на складе, по его названию

Create function dbo.isInStock

(@name varchar (50))

returns varchar(50)

as

begin

declare @qu int, @ret varchar(50)

select @qu = w.Quantity

from dbo.Warehouse as w

where w.ProductName = @name

if @qu > 0

set @ret = (@name + ' ' + ' is in stock')

else

set @ret = (@name + ' ' + ' is not in stock')

return(@ret)

end

select dbo.isInStock('TF2 Game')

Запрос 2:

Рассчитать общую сумму заказа.

select p.PurchasementID, p.PurchasementDate,

p.FinalCost

from dbo.Purchasement as p

Вызов соответствующей функции, описание которой приводится в разделе "функции для вычисляемых столбцов"

select dbo.FinCost(4, 3)

Запрос 3:

Какие товары чаще всего заказывают клиенты

select count(pp.ProductID) as TimesBuyed,

w.ProductName

from dbo.Warehouse as w

Left join dbo.PurchProd as pp on pp.ProductID = w.ProductID

group by w.ProductName

order by TimesBuyed desc

Запрос 4:

Доход фирмы за определенный период

select

sum(p.FinalCost)

from dbo.Purchasement as p

where (p.PurchasementDate < '1-12-2011')

and (p.PurchasementDate >= '1-11-2011')

Запрос 5:

Список постоянных клиентов и сумму скидок которые они получили.

select c.Name +' '+ c.Surname as Name, sum(p.BeginningCost-p.FinalCost) as TotalSale

from dbo.customer as c

left join dbo.Purchasement as p on p.CustomerID = c.CustomerID

where c.IsFriend = 1

group by c.Name,c.Surname

Функции для вычисляемых столбцов:

Функция 1:

Подсчет суммарной стоимости промежуточной сделки

Create function dbo.CostOfCouple

(@productId int, @quantity int)

returns int

as

begin

declare @price int

Select @price = w.Price * @quantity

from dbo.warehouse as w

where w.ProductID = @productId

return(@price)

end;

Функция 2:

Вычисляется начальная стоимость сделки (без учета скидок)

Create function dbo.BegCost

(@PurchasementID int)

returns int

as

begin

declare @cost int

Select @cost = sum(PP.TotalCost)

from dbo.PurchProd as PP

where PP.PurchasementID = @PurchasementID

return(@cost)

end;

Функция 3:

Вычисляется конечная стоимость сделки, с учетом всех скидок

Create function dbo.FinCost

(@purchasementID int, @customerID int)

returns int

as

begin

declare @friend bit,

@finCost int,

@begCost int

Select @friend = c.IsFriend

from dbo.customer as c

where c.CustomerID = @customerID

Select @begCost = sum(PP.TotalCost)

from dbo.PurchProd as PP

where PP.PurchasementID = @PurchasementID

if @friend = 0

begin

if @begCost < 1000

set @finCost = @begCost;

else if @begCost <3000

set @finCost = @begCost * 0.97;

else if @begCost <10000

set @finCost = @begCost * 0.90;

else if(@begCost <30000)

set @finCost = @begCost * 0.85;

else

set @finCost = @begCost * 0.83;

end;

else

begin

if(@begCost <1000)

set @finCost = @begCost *0.95;

else if(@begCost <3000)

set @finCost = @begCost * 0.92;

else if(@begCost <10000)

set @finCost = @begCost * 0.85;

else if(@begCost <30000)

set @finCost = @begCost * 0.80;

else

set @finCost = @begCost * 0.78;

end;

return(@finCost)

end;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]