
- •Введение
- •Создание базы данных
- •Создание таблиц
- •Описание скриптов для добавления данных
- •Добавление данных
- •Описание скриптов удаления данных
- •Описание хранимых процедур просмотра таблиц
- •Описание хранимых процедур изменения данных
- •Описание хранимых процедур поиска
- •Описание триггеров
- •Описание создания отчетов
- •Описание джоба резервного копирования данных
- •Описание создания ролей, прав и пользователей
- •Заключение
- •Использованная литература
Описание создания отчетов
--Просмотр информации обо всех товарах в группах в алфавитном порядке
--Вывод: название группы, название товара, количество, ед.измерения
if exists (select * from dbo.sysobjects
where id = OBJECT_ID(N'View_good_alf') and OBJECTPROPERTY(id, N'IsProcedure')=1
)
drop procedure View_good_alf
go
CREATE procedure View_good_alf
as
SELECT P.name_group [Название группы],
G.name_good [Название товара],
G.quantity_good [Количество товара],
G.ed_izm [Единица измерения]
from Goods G JOIN Product_groups P on G.id_group=P.id_group
order by P.name_group, G.name_good
go
--exec View_good_alf
--Просмотр информации обо всех товарах в группах по убыванию/возрастанию количества товаров
--Вывод: название группы, название товара, количество, ед.измерения
--Вывод по увеличению количества товаров в группе - 1
--Вывод по уменьшению количества товаров в группе - 2
if exists (select * from dbo.sysobjects
where id = OBJECT_ID(N'View_good_kol') and OBJECTPROPERTY(id, N'IsProcedure')=1
)
drop procedure View_good_kol
go
CREATE procedure View_good_kol
@i int
as
if @i=1
begin
SELECT P.name_group [Название группы],
G.name_good [Название товара],
G.quantity_good [Количество товара],
G.ed_izm [Единица измерения]
from Goods G JOIN Product_groups P on G.id_group=P.id_group
order by P.name_group, G.quantity_good
end
if @i=2
begin
SELECT P.name_group [Название группы],
G.name_good [Название товара],
G.quantity_good [Количество товара],
G.ed_izm [Единица измерения]
from Goods G JOIN Product_groups P on G.id_group=P.id_group
order by P.name_group, G.quantity_good desc
end
go
--exec View_good_kol 1
--exec View_good_kol 2
--Просмотр информации обо всех товарах по убыванию/возрастанию количества товаров
--Вывод: название товара, количество, ед.измерения
--Вывод по увеличению количества товаров в группе - 1
--Вывод по уменьшению количества товаров в группе - 2
if exists (select * from dbo.sysobjects
where id = OBJECT_ID(N'View_good_kol2') and OBJECTPROPERTY(id, N'IsProcedure')=1
)
drop procedure View_good_kol2
go
CREATE procedure View_good_kol2
@i int
as
if @i=1
begin
SELECT G.name_good [Название товара],
G.quantity_good [Количество товара],
G.ed_izm [Единица измерения]
from Goods G
order by G.quantity_good
end
if @i=2
begin
SELECT G.name_good [Название товара],
G.quantity_good [Количество товара],
G.ed_izm [Единица измерения]
from Goods G
order by G.quantity_good desc
end
go
-
--exec View_good_kol2 1
--exec View_good_kol2 2
--Статистика поступления товаров по неделям с начала указанного года
--Вывод: номер недели, название товара, количество поступления, количество продажи
if exists (select * from dbo.sysobjects
where id = OBJECT_ID(N'Stat_good_ned_d') and OBJECTPROPERTY(id, N'IsProcedure')=1
)
drop procedure Stat_good_ned_d
go
CREATE procedure Stat_good_ned_d
@year date
as
SELECT DATEPART (ISO_WEEK, D.date_time_delivery) [Неделя поступления],
G.name_good [Название товара],
SUM(C.quantity) [Количество поступления]
from Goods G
JOIN Consignment_note C on G.id_good=C.id_good
JOIN Deliveries D on C.id_cons_note=D.id_cons_note
where D.date_time_delivery>@year
group by DATEPART (ISO_WEEK, D.date_time_delivery),G.name_good
go
--exec Stat_good_ned_d '2013'
Проверяем правильность работы отчета:
--Добавляем поставки сделанные на одной неделе, для проверки работы отчета
exec Add_delivery '2013-01-01 13:55:20',5
exec Add_delivery '2013-02-01 13:55:20',3
exec Add_delivery '2013-03-01 13:55:20',4
--Для поставок, сделанных на одной неделе, делаем накладные на одинаковые товары,
--для проверки работы отчета
exec Add_cons_note 11,12,10,123.00
exec Add_cons_note 11,1,3,123.00
exec Add_cons_note 12,12,7,63.00
exec Add_cons_note 12,25,8,123.00
exec Add_cons_note 12,1,8,43.00
exec Add_cons_note 13,12,1,93.00
--Статистика продажи товаров по неделям с начала указанного года
--Вывод: номер недели, название товара, количество поступления, количество продажи
if exists (select * from dbo.sysobjects
where id = OBJECT_ID(N'Stat_good_ned_s') and OBJECTPROPERTY(id, N'IsProcedure')=1
)
drop procedure Stat_good_ned_s
go
CREATE procedure Stat_good_ned_s
@year date
as
SELECT DATEPART (ISO_WEEK, S.date_time_shipment) [Неделя отгрузки],
G.name_good [Название товара],
SUM(Z.quantity) [Количество продажи]
from Goods G
JOIN Zakaz Z on G.id_good=Z.id_good
JOIN Shipments S on Z.id_zakaz=S.id_zakaz
where S.date_time_shipment>@year
group by DATEPART (ISO_WEEK, S.date_time_shipment),G.name_good
order by DATEPART (ISO_WEEK, S.date_time_shipment),G.name_good
go
--exec Stat_good_ned_s '2011'
Проверяем правильность работы отчета:
--Добавляем продажи, сделанные на одной неделе, для проверки работы отчета
exec Add_shipment '2011-06-12 16:55:18',9
exec Add_shipment '2011-06-12 16:55:18',7
exec Add_shipment '2011-06-12 16:55:18',8
--Для продаж, сделанных на одной неделе, делаем заказы с одинаковыми товарами,
--для проверки работы отчета
exec Add_zakaz 10,25,1
exec Add_zakaz 10,3,1
exec Add_zakaz 10,4,1
exec Add_zakaz 11,3,1
exec Add_zakaz 11,4,1
exec Add_zakaz 12,4,1
exec Add_zakaz 12,3,1