Главная страница

Роддом (1). Информатика Курсовая работа по дисциплине Базы данных Тема Роддом ст гр. Аис32 Фролов Сергей Игоревич РостовнаДону Содержание


Скачать 0.84 Mb.
НазваниеИнформатика Курсовая работа по дисциплине Базы данных Тема Роддом ст гр. Аис32 Фролов Сергей Игоревич РостовнаДону Содержание
Дата26.05.2022
Размер0.84 Mb.
Формат файлаdoc
Имя файлаРоддом (1).doc
ТипКурсовая
#551261
страница4 из 5
1   2   3   4   5

3.2. Запросы


Для решения поставленной задачи разработаны SQL-запросы, описанные ниже.

Запрос «Загрузка врачей за период» подсчитывает количество пациенток по каждому врачу за заданный период времени. Период задается с помощью специальной формы, значения полей которой являются параметрами данного запроса (а также нескольких других запросов, имена которых заканчиваются словами «… за период»). Вид запроса в режиме конструктора представлен на рис. 4, а ниже приведен текст запроса на языке SQL:



Рис. 4. Запрос «Загрузка врачей за период» в режиме конструктора

SELECT Врач.ФИО, Count(Стационар.Код) AS Пациенток

FROM Врач INNER JOIN Стационар ON Врач.КодВрача = Стационар.Врач

WHERE (((Стационар.Начало)<=[Forms]![Отчеты за период]![Конец]) AND ((Стационар.Конец)>=[Forms]![Отчеты за период]![Начало] Or (Стационар.Конец) Is Null))

GROUP BY Врач.ФИО

ORDER BY Врач.ФИО;

Результаты запроса «Загрузка врачей за период» (в этом и последующих запросах за период в качестве периода указывался февраль 2007 г.):

Загрузка врачей за период

Врач

Пациенток

Гайдукевич Инна Федоровна

2

Дзюбенко Ирина Федоровна

1

Терентьев Михаил Иванович

2

Запрос «Загрузка палат» подсчитывает для каждой палаты количество размещенных в ней пациенток. Для этого в запросе подсчитывается общее число помещавшихся в палату пациенток (непустых значений поля Код), общее число выписанных пациенток (непустых значений поля Переведена), и на основании этих данных — количество пациенток, находящихся в палате на текущий момент. Вид запроса в режиме конструктора представлен на рис. 5, а ниже приведен текст запроса на языке SQL:



Рис. 5. Запрос «Загрузка палат» в режиме конструктора

SELECT Палата.№, Палата.Мест, Count(Размещение.Код) AS Помещено, Count(Размещение.Переведена) AS Выписано, [Помещено]-[Выписано] AS Пациенток, [Мест]-[Пациенток] AS Свободно

FROM Палата LEFT JOIN Размещение ON Палата.№ = Размещение.Палата

GROUP BY Палата.№, Палата.Мест;

Результаты запроса «Загрузка палат»:

Загрузка палат

Палата №

Мест

Помещено

Свободно

Выписано

Пациенток

201

2

2

0

0

2

202

2

1

2

1

0

203

3

1

2

0

1

204

3

1

2

0

1

205

2

1

1

0

1

206

2

3

0

1

2

207

1

1

0

0

1

208

1

0

1

0

0

209

1

0

1

0

0

210

1

1

1

1

0

301

2

1

1

0

1

302

2

1

1

0

1

303

2

1

1

0

1

304

2

0

2

0

0

305

2

0

2

0

0

306

2

2

1

1

1

307

1

1

1

1

0

308

1

0

1

0

0

Запрос «Новорожденных за период» подсчитывает общее число новорожденных, а также количество среди них мальчиков и девочек, за заданный период. Вид запроса в режиме конструктора представлен на рис. 6, а ниже приведен текст запроса на языке SQL:



Рис. 6. Запрос «Новорожденных за период» в режиме конструктора

SELECT Count(Ребенок.Бирка) AS Новорожденных, Sum(IIf(Ребенок!Пол="м",1,0)) AS Мальчиков, Sum(IIf(Ребенок!Пол="м",0,1)) AS Девочек

FROM Ребенок

WHERE (((Ребенок.ДР)>=[Forms]![Отчеты за период]![Начало] And (Ребенок.ДР)<=[Forms]![Отчеты за период]![Конец]));

Результаты запроса «Новорожденных за период»:

Новорожденных за период

Новорожденных

Мальчиков

Девочек

1

1

0

Запрос «Пациенток за период» подсчитывает количество пациенток за период (точнее — количество пребываний в стационаре, так что если в течение заданного периода одна и та же роженица помещалась в стационар дважды, с перерывом, то она будет «подсчитана» дважды). Вид запроса в режиме конструктора представлен на рис. 7, а ниже приведен текст запроса на языке SQL:

SELECT Count(Стационар.Код) AS Пациенток

FROM Стационар

HAVING (((Стационар.Начало)<=[Forms]![Отчеты за период]![Конец]) AND ((Стационар.Конец)>=[Forms]![Отчеты за период]![Начало] Or (Стационар.Конец) Is Null));



Рис. 7. Запрос «Пациенток за период» в режиме конструктора

Результаты запроса «Пациенток за период»:

Пациенток за период

Пациенток

5

Запрос «Родов за период» вычисляет количество родов, произошедших в течение заданного периода. Вид запроса в режиме конструктора представлен на рис. 8, а ниже приведен текст запроса на языке SQL:



Рис. 8. Запрос «Родов за период» в режиме конструктора

SELECT Count(Роды.Код) AS Родов

FROM Роды

HAVING (((Роды.Начало)<=[Forms]![Отчеты за период]![Конец]) AND ((Роды.Конец)>=[Forms]![Отчеты за период]![Начало] Or (Роды.Конец) Is Null));

Результаты запроса «Родов за период»:

Родов за период

Родов

2

Запрос «Сводная статистика за период» объединяет результаты трех описанных только что запросов в одном запросе — для формирования единого отчета. Вид запроса в режиме конструктора представлен на рис. 9, а ниже приведен текст запроса на языке SQL:



Рис. 9. Запрос «Сводная статистика за период» в режиме конструктора

SELECT [Пациенток за период].Пациенток, [Родов за период].Родов, [Новорожденных за период].Новорожденных, [Новорожденных за период].Мальчиков, [Новорожденных за период].Девочек

FROM [Пациенток за период], [Родов за период], [Новорожденных за период];

Результаты запроса «Сводная статистика за период»:

Сводная статистика за период

Пациенток

Родов

Новорожденных

Мальчиков

Девочек

5

2

1

1

0

Запрос «Роды за период» отбирает данные о родах, произошедших в течение заданного периода времени, с целью формирования соответствующего отчета. Вид запроса в режиме конструктора представлен на рис. 10, а ниже приведен текст запроса на языке SQL:



Рис. 10. Запрос «Роды за период» в режиме конструктора

SELECT Роды.Код, Роды.Начало, Роды.Конец, CDate([Конец]-[Начало]) AS Продолжительность, Роды.Описание, Ребенок.Пол, Ребенок.ДР, Ребенок.Имя, Ребенок.Рост, Ребенок.Вес

FROM Роды LEFT JOIN Ребенок ON Роды.Код = Ребенок.Код

WHERE (((Роды.Начало)<=[Forms]![Отчеты за период]![Конец]) AND ((Роды.Конец)>=[Forms]![Отчеты за период]![Начало] Or (Роды.Конец) Is Null));

Результаты запроса «Роды за период»:

Роды за период

Код

Начало

Конец

Продолжительность

Описание

Пол

Дата и время рождения

Имя

Рост

Вес

Стасюк Елена Павловна

25.02.07 7:20:00

25.02.07 8:50:00

1:30:00




м

25.02.07 8:30:00

Стасюк Даниил Максимович

54

3,2

Кучерявенко Марина Сергеевна

20.02.07 12:00:00

20.02.07 13:00:00

1:00:00

в результате позднего обращения плод спасти не удалось
















Запрос «Роженицы за период» отбирает данные о роженицах, пребывавших в стационаре в течение заданного периода времени. Вид запроса в режиме конструктора представлен на рис. 11, а ниже приведен текст запроса на языке SQL:

SELECT Роженица.ФИО, Роженица.ДР, Стационар.Код, Стационар.Начало, Стационар.Конец, Стационар.Описание, Стационар.Врач, Размещение.Палата, Размещение.Помещена, Размещение.Переведена

FROM (Роженица INNER JOIN Стационар ON Роженица.№ = Стационар.Роженица) INNER JOIN Размещение ON Стационар.Код = Размещение.Код

WHERE (((Стационар.Начало)<=[Forms]![Отчеты за период]![Конец]) AND ((Стационар.Конец)>=[Forms]![Отчеты за период]![Начало] Or (Стационар.Конец) Is Null))

ORDER BY Стационар.Начало, Размещение.Помещена;



Рис. 11. Запрос «Роженицы за период» в режиме конструктора

Результаты запроса «Роженицы за период»:

Роженицы за период

Ф.И.О.

Дата рожд.

Код

Начало

Конец

Описание

Врач

Палата

Помещена

Переведена

Алексенко Анна Владимировна

08.02.85

6

03.02.07

20.02.07

помещена с стационар на сохранение

Гайдукевич Инна Федоровна

210

03.02.07

12.02.07

Алексенко Анна Владимировна

08.02.85

6

03.02.07

20.02.07

помещена с стационар на сохранение

Гайдукевич Инна Федоровна

307

12.02.07

20.02.07

Кучерявенко Марина Сергеевна

01.09.89

8

20.02.07 11:50:00

25.02.07

поступила после того, как отошли воды, сразу помещена в родовое отделение

Терентьев Михаил Иванович

306

20.02.07 15:00:00

25.02.07

Стасюк Елена Павловна

12.03.85

7

21.02.07 14:30:00

06.03.07




Дзюбенко Ирина Федоровна

206

21.02.07 14:50:00

06.03.07

Лебедкина Ирина Михайловна

30.01.89

2

24.02.07 12:20:00







Гайдукевич Инна Федоровна

204

24.02.07 13:00:00




Иваненко Людмила Петровна

27.12.82

9

27.02.07 14:30:00







Терентьев Михаил Иванович

301

27.02.07 14:55:00




Запрос «Список по палатам» формирует список рожениц, находящихся в настоящее время в каждой из палат. Вид запроса в режиме конструктора представлен на рис. 12, а ниже приведен текст запроса на языке SQL:

SELECT Палата.№, Роженица.ФИО, Роженица.ДР, Стационар.Начало

FROM (Роженица INNER JOIN Стационар ON Роженица.№ = Стационар.Роженица) INNER JOIN (Палата INNER JOIN Размещение ON Палата.№ = Размещение.Палата) ON Стационар.Код = Размещение.Код

WHERE (((Стационар.Конец) Is Null))

ORDER BY Палата.№;



Рис. 12. Запрос «Список по палатам» в режиме конструктора

Результаты запроса «Список по палатам»:

Список по палатам

Палата №

Ф.И.О.

Дата рожд.

Начало

201

Пасс Алина Альбертовна

10.05.82

04.03.07

201

Гудзь Наталья Олеговна

11.01.80

03.03.07 13:25:00

203

Кононенко Анжела Петровна

21.11.87

01.03.07 12:35:00

204

Лебедкина Ирина Михайловна

30.01.89

24.02.07 12:20:00

205

Бубнова Анастасия Михайловна

27.09.83

28.02.07 14:25:00

206

Вербицкая Елена Ивановна

21.12.85

01.03.07 10:45:00

206

Кохан Виктория Петровна

23.08.80

05.03.07 12:35:00

207

Михайлова Инна Николаевна

24.06.81

04.03.07 15:50:00

301

Иваненко Людмила Петровна

27.12.82

27.02.07 14:30:00

302

Пушкова Анна Ивановна

28.10.83

02.03.07 13:20:00

303

Кутько Ирина Геннадиевна

14.02.82

02.03.07 14:40:00

306

Самойленко Анна Николаевна

31.05.88

05.03.07 12:20:00
1   2   3   4   5


написать администратору сайта