Проектирование и разработка базы данных информационной системы " Магазин электроники и бытовой техники"


Проектирование и разработка пользовательских представлений



бет5/6
Дата16.05.2023
өлшемі0,69 Mb.
#93382
түріКурсовой проект
1   2   3   4   5   6

Проектирование и разработка пользовательских представлений


Добавление клиента
Процедура spr_addmanager

create PROCEDURE [dbo].[spr_addmanager]


@Idmanager int OUT,
@name nvarchar(30),
@phone nvarchar(16)
AS
IF EXISTS(SELECT * FROM manager WHERE phone=@phone)
RETURN -100

INSERT manager([name], phone)


VALUES (@name, @phone)
SET @Idmanager = @@IDENTITY
RETURN 0
Вызов процедуры
DECLARE @return_value int,
@Idmanager int
EXEC @return_value = spr_addmanager
@name='Саудов Геннадий',
@phone= '8-960-124-11-11',
@Idmanager = @Idmanager OUTPUT
IF @return_value = 0
BEGIN
PRINT 'Менеджер успешно добавлен'
SELECT @Idmanager as 'Номер менеджера'
END
ELSE
BEGIN
PRINT 'При добавлении произошла ошибка'
END
Удаление менеджера
Процедура spr_delmanager
Create procedure [dbo].[spr_delmanager]
@idmanager int
AS
if not exists (select * from manager where idmanager=@idmanager)
return -100
delete from manager
where idmanager=@idmanager
RETURN 0
Вызов процедуры
DECLARE @return int
EXEC @return = spr_delmanager
@idmanager=5
IF @return = 0
BEGIN
PRINT 'Менеджер успешно удален'
END
ELSE
BEGIN
PRINT 'Во время удаления произошла ошибка'
END
Вся информация о товаре

Представление dbo.ALL_info_wares


SELECT dbo.wares.name AS Наименование, dbo.wares.description AS Описание, dbo.provider.name AS Поставщик, dbo.wares.orderprice AS [Цена закупа], dbo.wares.saleprice AS [Цена продажи], dbo.discount.[percent] AS [Скидка (%)]
FROM dbo.discount INNER JOIN
dbo.wares ON dbo.discount.Iddiscount = dbo.wares.Iddiscount INNER JOIN
dbo.period ON dbo.wares.Idwares = dbo.period.Idwares INNER JOIN
dbo.provider ON dbo.period.Idprovider = dbo.provider.Idprovider
Вызов представления
SELECT *
FROM All_info_wares
Список всех заказов

Представление dbo.orders_info


SELECT TOP (100) PERCENT dbo.wares.name AS Наименовани, dbo.wares.description AS Описание, dbo.orderitem.warescount AS [Кол-во],dbo.wares.orderprice AS Цена, dbo.[order].orddate AS Дата
FROM dbo.[order] INNER JOIN
dbo.orderitem ON dbo.[order].Idorder = dbo.orderitem.Idorder INNER JOIN
dbo.wares ON dbo.orderitem.Idwares = dbo.wares.Idwares
ORDER BY dbo.wares.name
Вызов представления
SELECT *
FROM orders_info

Просмотр сроков поставки товаров всех фирм с указание контактной информации и стоимости товаров


Представление dbo.firms_periods
SELECT dbo.provider.name AS Фирма, dbo.provider.agentname AS Представитель, dbo.provider.phone AS Телефон,dbo.wares.name AS [Наименование товара], dbo.wares.description AS [Описание товара], dbo.wares.orderprice AS [Цена закупки], dbo.period.day AS [Срок ожидания]
FROM dbo.provider INNER JOIN
dbo.period ON dbo.provider.Idprovider = dbo.period.Idprovider INNER JOIN
dbo.wares ON dbo.period.Idwares = dbo.wares.Idwares
Вызов представления
SELECT *
FROM firms_periods
Поиск продаж по промежутку даты
create procedure [dbo].[spr_salesearch]
@date1 datetime,
@date2 datetime
AS
SELECT w.[name], w.description, s.saledate
FROM wares w, sale s,saleitem si
where s.idsale=si.idsale and si.idwares=w.idwares and saledate BETWEEN @date1 AND @date2
RETURN

Вызов процедуры


EXEC spr_salesearch
@date1 = '10.06.2011',
@date2 = '01.10.2011'

Сумма выручки за заданный период


Create FUNCTION [dbo].[sum] (@date1 smalldatetime, @date2 smalldatetime)
RETURNS TABLE
AS
return
(
select sum(w.saleprice-(w.saleprice*(d.[percent]*0.01))-w.orderprice)as 'сумма'
from wares w inner join
discount d on w.iddiscount=d.iddiscount inner join
saleitem si on w.idwares=si.idwares inner join
sale s on si.idsale=s.idsale
where (s.saledate >= @date1) and (s.saledate <= @date2)
)
Вызов
select *
from dbo.[sum] ('10.06.2011', '16.10.2011')

Определить лучшего менеджера


create FUNCTION [dbo].[bestmanager]()
returns table
as
return(
select m.[name], count(s.idsale) 'Продажи'
from manager m inner join sale s
on m.idmanager=s.idmanager
group by m.[name]
)

Вызов
select *


from dbo.bestmanager()
order by 'Продажи' desc




Достарыңызбен бөлісу:
1   2   3   4   5   6




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет