І. Жансүгіров атындағы жму хабаршысы №3 / 2018



Pdf көрінісі
бет88/198
Дата07.01.2022
өлшемі2,57 Mb.
#16935
1   ...   84   85   86   87   88   89   90   91   ...   198
  
50 
ISSN 2616-8901.
  Математика және жаратылыстану-техникалық сериясы
 № 4/ 2018  
 
RETURNS сөйлеміне қайтаратын мән типін көрсететін TABLE кілттік сөзі жазылады. Осындай 
функция қайтаратын кесте бағандары SELECT инструкциясымен анықталады. Функция денесі 
RETURN командасымен беріледі, ол орындалғаннан кейін функция жұмысын тоқтатады [5]. 
CREATE FUNCTION СтажРаботы()  
RETURNS TABLE   
AS  
RETURN   
(  
SELECT Анкета.ФИО,Анкета.Таб_ном, Анкета.Дата_поступ,   
If ((MONTH(GetDate())- 
MONTH(Анкета.Дата_поступ))>=0,Year(GetDate())- 
Year(Анкета.Дата_поступ),Year(GetDate())- 
Year(Анкета.Дата_поступ)-1) AS Стаж  
FROM dbo.Анкета  

Сұранысты  сақтап,  орындауға  жіберейік.  Егер  орындалу  сәтті  аяқталса,  онда  функция 
атауы жобаның навигация аймағында пайда болады.  
Келесі  мысалда  “Отпуск_за_данный_месяц”  деп  аталатын  кірістірілген  функцияны 
құрайық.  Бұл  функцияға  айдың  реттік  номер  параметрі  беріледі  және  осы  айда  демалысқа 
шығатын қызметкерлер тізімін қайтарады. 
CREATE FUNCTION Отпуск_за_данный_месяц  
(@Месяц int)  
RETURNS TABLE   
AS  
RETURN   
(  
SELECT dbo.Сотрудники.ФИО, dbo.Сотрудники.Таб_ном,  
dbo.Сотрудники.Ном_подразд,  
dbo.Сотрудники.Должность,   
dbo.График_отпусков.Начало_отпуска,  
dbo.График_отпусков.Кол_дней  
FROM dbo.Сотрудники INNER JOIN  
dbo.График_отпусков ON dbo.Сотрудники.Таб_ном =  
dbo.График_отпусков.Таб_ном  
WHERE MONTH(dbo.График_отпусков.Начало_отпуска) = @Месяц  

Әрі  қарай  сақталатын  процедура  құрамыз.  Ол  үшін  “Кадры”  ДҚ-н  таңдап, 
“Программирование”  тармағын  ашамыз.  “Хранимые  процедуры”  тармағында  жанама  менюді 
шақырып, “Создать хранимую процедуру” командасын орындаймыз.  
CREATE PROCEDURE СписокСотрудников  
@Номер_подразд  int  
AS  
BEGIN 
SELECT dbo.Сотрудники.ФИО, dbo.Сотрудники.Таб_ном,  
dbo. Сотрудники.Должность, dbo.Сотрудники.Оклад,  
dbo.Анкета.Адрес, dbo.Анкета.Телефон,   
dbo.Сотрудники.Ном_подразд  
FROM dbo.Сотрудники INNER JOIN  
dbo.Анкета ON dbo.Сотрудники.Таб_ном = dbo.Анкета.Таб_номер  
WHERE (Сотрудники.Ном_подразд = @Номер_подразд)  
ORDER BY Сотрудники.ФИО  
END 


 
51 


Достарыңызбен бөлісу:
1   ...   84   85   86   87   88   89   90   91   ...   198




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

    Басты бет