Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовой СУБД Вьюгин А.А 4.docx
Скачиваний:
2
Добавлен:
20.09.2019
Размер:
2.45 Mб
Скачать

Приложение 8 Отчетные формы

---------------------------------------------------------------------------------------------------------------------Отчетные формы

--Отчет работы всех подразделений сортировка по улицам

CREATE VIEW printall

AS

SELECT NameStreet [Улица],

PersonalNumber [№ лифта],

FIO [ФИО],

TypeOfApp [Видзаявки],

TypeOfDefect [Виднеисправности],

BreakDescription [Описаниеполомки],

BreakLevel [степень],

BreakTime [времяполомки],

Speciality [Специальность]

FROM Street ST INNER JOIN Elevators EL

ON ST.IDStreet=EL.IDStreet

INNER JOIN Request RE

ON EL.IDElevator=RE.IDElevator

INNER JOIN TypeOfApplication TA

ON RE.IDTypeOfApplication=TA.IDTypeOfApplication

INNER JOIN Orders ORD

ON RE.IDRequest=ORD.IDRequest

INNER JOIN Electrician ELC

ON ORD.IDElectrician=ELC.IDElectrician

INNER JOIN Defects DFS

ON ORD.IDOrders=DFS.IDOrders

INNER JOIN Defect DF

ON DFS.IDDefect=Df.IDDefect

;

SELECT * FROMprintall

--вывод всех поломанных лифтов с высокой степенью

CREATE VIEW print1El

AS

SELECT NameStreet [Улица],

PersonalNumber [Номерлифта],

FIO [ФИО],

TypeOfApp [Видзаявки],

TypeOfDefect [Виднеисправности],

BreakDescription [Описаниеполомки],

BreakLevel [степеньполомки]

FROM Street ST INNER JOIN Elevators EL

ON ST.IDStreet=EL.IDStreet

INNER JOIN Request RE

ON EL.IDElevator=RE.IDElevator

AND BreakLevel=1

INNER JOIN TypeOfApplication TA

ON RE.IDTypeOfApplication=TA.IDTypeOfApplication

INNER JOIN Orders ORD

ON RE.IDRequest=ORD.IDRequest

INNER JOIN Electrician ELC

ON ORD.IDElectrician=ELC.IDElectrician

INNER JOIN Defects DFS

ON ORD.IDOrders=DFS.IDOrders

INNER JOIN Defect DF

ON DFS.IDDefect=Df.IDDefect;

SELECT * FROMprint1El

--функция вывода работы подразделения с определенной даты

CREATE FUNCTION PrintPodr

(@Date DATETIME,

@Spec VARCHAR(40))

RETURNS @Result TABLE(

NameStreetVARCHAR(40),

PersonalNumber INT,

FIO VARCHAR(80),

TypeOfAppVARCHAR(80),

TypeOfDefectVARCHAR(80),

BreakDescriptionVARCHAR(256),

BreakLevel BIT,

BreakTime DATETIME,

SpecialityVARCHAR(40)

)

AS

BEGIN

INSERT INTO @Result

SELECT

NameStreet [Улица],

PersonalNumber [№ лифта],

FIO [ФИО],

TypeOfApp [Видзаявки],

TypeOfDefect [Виднеисправности],

BreakDescription [Описаниеполомки],

BreakLevel [степень],

BreakTime [времяполомки],

Speciality [Специальность]

FROM Street ST INNER JOIN Elevators EL

ON ST.IDStreet=EL.IDStreet

INNER JOIN Request RE

ON EL.IDElevator=RE.IDElevator

INNER JOIN TypeOfApplication TA

ON RE.IDTypeOfApplication=TA.IDTypeOfApplication

INNER JOIN Orders ORD

ON RE.IDRequest=ORD.IDRequest

AND BreakTime> @Date

INNER JOIN Electrician ELC

ON ORD.IDElectrician=ELC.IDElectrician

AND Speciality = @Spec

INNER JOIN Defects DFS

ON ORD.IDOrders=DFS.IDOrders

INNER JOIN Defect DF

ON DFS.IDDefect=Df.IDDefect

RETURN;

END

SELECT * FROMPrintPodr('05.07.2011 012:00:00:00','Основнойэлектромеханик')

--Личная карточка лифта со всей историей

CREATE FUNCTION PrintElevator

(@NumVARCHAR(10))

RETURNS @Result TABLE(

NameStreetVARCHAR(40),

PersonalNumber INT,

FIO VARCHAR(80),

TypeOfAppVARCHAR(80),

TypeOfDefectVARCHAR(80),

BreakDescriptionVARCHAR(256),

BreakLevel BIT,

BreakTime DATETIME,

SpecialityVARCHAR(40)

)

AS

BEGIN

INSERT INTO @Result

SELECT

NameStreet [Улица],

PersonalNumber [№ лифта],

FIO [ФИО],

TypeOfApp [Видзаявки],

TypeOfDefect [Виднеисправности],

BreakDescription [Описаниеполомки],

BreakLevel [степень],

BreakTime [времяполомки],

Speciality [Специальность]

FROM Street ST INNER JOIN Elevators EL

ON ST.IDStreet=EL.IDStreet

AND PersonalNumber=@Num

INNER JOIN Request RE

ON EL.IDElevator=RE.IDElevator

INNER JOIN TypeOfApplication TA

ON RE.IDTypeOfApplication=TA.IDTypeOfApplication

INNER JOIN Orders ORD

ON RE.IDRequest=ORD.IDRequest

INNER JOIN Electrician ELC

ON ORD.IDElectrician=ELC.IDElectrician

INNER JOIN Defects DFS

ON ORD.IDOrders=DFS.IDOrders

INNER JOIN Defect DF

ON DFS.IDDefect=Df.IDDefect

RETURN;

END

SELECT * FROM PrintElevator (6)