Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 24.10.2010
Сообщений: 31

Запросы select. Триггер

19.05.2013, 21:07. Показов 3466. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Просьба помочь, по-возможности...

Задание:
Кликните здесь для просмотра всего текста
Вариант 14
Разработать информационную систему учета проведения строительных работ. Система должна учитывать комплектацию бригад и направление бригад на различные объекты строительства. В системе должны сохраняться данные как о выполненных работах, так и о запланированных работах бригад на объектах строительства.

Требования к данным
1. Система должна обеспечивать хранение информации о следующих объектах:
 Рабочий
 Бригада
 Объект строительства
2. Информация, описывающая отдельного рабочего, включает фамилию, имя, отчество рабочего; табельный номер; дату рождения; место жительства и телефон.
3. Информация, описывающая бригаду, включает номер бригады; информацию о количестве человек в бригаде.
4. Информация об объекте строительства состоит из названия объекта строительства; адреса объекта; сроков начала и окончания строительства.
5. Каждый рабочий зачисляется в бригаду, при этом рабочий может работать только в одной бригад.
6. Численность каждой бригады составляет от 3 до 20 человек.
7. Каждая бригада имеет одного бригадира из числа рабочих бригады.
8. Бригада может работать на нескольких объектах, и на одном объекте может работать несколько бригад.
9. *В случае если бригада работает на нескольких объектах, необходимо фиксировать сроки работы бригады на каждом из объектов.
10. *Требуется исключить ситуацию, когда бригада в одно и то же время работает на разных объектах.

Требования к операциям над данными
1. Система должна обеспечивать доступ к информации следующим категориям пользователей:
 Менеджер
 Бригадир
 Рабочий
2. Операции, выполняемые менеджером:
 добавление, изменение, удаление информации о рабочих и бригадах
 добавление, изменение, удаление информации об объектах строительства
 смена бригадиров в бригадах
 составление расписания работ бригад на объектах
 получение информации о количестве рабочих в каждой бригаде
 получение информации об общем количестве рабочих
 получение отчета о бригадах, работающих на заданном объекте, с указанием дат работы
 нахождение бригад с максимальным и минимальным количеством рабочих
3. Операции, выполняемые бригадирами:
 получение полной информации о рабочих бригады
 получение информации о среднем возрасте рабочих бригады
 получение расписания работ бригады на различных объектах строительства
 получение отчета о бригадах, с которыми данной бригаде предстоит работать на каждом объекте строительства
4. Операции, выполняемые рабочими:
 получение полной информации о бригаде, в которой работает рабочий
 получение расписания работ данного рабочего на объектах строительства






Соответственно, самое простое-то у меня получилось...
Т.е. create table, insert и простейшие Select.


SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
USE Buildings
GO
    /*получение информации о количестве рабочих в каждой бригаде */
SELECT * FROM WorkGroup
 /*group by Amount;*/
 
    /*получение информации об общем количестве рабочих*/
SELECT COUNT(*) AS Sum_Worker FROM Worker;
    /*получение отчета о бригадах, работающих на заданном объекте, с указанием дат работы */
SELECT * FROM Group_on_Object WHERE Title='Дом';
    /*нахождение бригад с максимальным и минимальным  количеством рабочих */
SELECT MAX(amount) AS Max_Brig FROM WorkGroup;
SELECT MIN(amount) AS Min_Brig FROM WorkGroup;  
 
    /*получение полной информации о рабочих бригады - Додумать*/
SELECT WorkGroup.*, Brigadier.*, Worker_in_Group.* FROM
    WorkGroup LEFT JOIN Brigadier ON Brigadier.number = WorkGroup.number
    LEFT JOIN Worker_in_Group ON Worker_in_Group.number = WorkGroup.number;
 
    /*получение информации о среднем возрасте рабочих бригады  */
SELECT * FROM 
    
    
    /*получение расписания работ бригады на различных объектах строительства*/
    /*получение отчета о бригадах, с которыми данной бригаде предстоит работать на каждом объекте строительства */
 
 
    /*получение полной информации о бригаде, в которой работает рабочий - Додумать */
SELECT Tab_Number, Name FROM Wokers
WHERE (SELECT Tab_Number FROM Brigadier WHERE (SELECT NUMBER FROM WorkGroup WHERE (SELECT Tab_Number FROM Worker_in_Group )));
 
 
    /*получение расписания работ данного рабочего на объектах строительства*/
Начиная с "получение полной информации о рабочих бригады " у меня ничего не получается...

Триггер: "10. *Требуется исключить ситуацию, когда бригада в одно и то же время работает на разных объектах. "

SQL
1
2
3
4
5
6
7
8
9
10
11
12
USE Buildings
GO
 
CREATE TRIGGER WORK
ON Group_on_Object
FOR INSERT, UPDATE
AS
BEGIN
IF EXISTS (SELECT * FROM Group_on_Object WHERE inserted >= Begin_Date_WG AND inserted <= End_date_WG)
ROLLBACK
print 'Бригада в это время уже занята'
END
Но он тоже не работает.

Может, подскажете что-нибудь?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.05.2013, 21:07
Ответы с готовыми решениями:

Запросы Select в SQL
Ребята может кто-нибудь помочь с запросами? 1. Выбрать товары, которые поставлялись в июле и июне 1996г из Москвы 2. Выбрать...

SELECT запросы для БД
Необходимо составить запросы по базе данных( нужен код запроса) 1)Определить число авторов, проживающих в Калифорнии 2)Определить...

Вложенные SELECT -запросы
Добрый день можете помочь сделать несколько запросов. 1)Вывести название 2-х первых магазинов, у которых есть в наличии хлеб нарочанский...

3
107 / 107 / 5
Регистрация: 28.12.2012
Сообщений: 207
19.05.2013, 22:41
Цитата Сообщение от Тёрн Посмотреть сообщение
получение информации о среднем возрасте рабочих бригады
T-SQL
1
2
3
4
SELECT b.Number, AVG(DATEDIFF(yy, w.Birtday, GETDATE())) AS 'Средний возраст в бригаде' 
FROM Worker w
    INNER JOIN [Рабочий в бригаде] b ON w.[Tab Number] = b.[Tab Number]
GROUP BY b.Number
0
0 / 0 / 0
Регистрация: 24.10.2010
Сообщений: 31
21.05.2013, 02:39  [ТС]
И на том Спасибо, добрый человек. Даже такое в голову бы не лезло...

Добавлено через 13 часов 35 минут
Остальное, вроде, додумал. Не знаю, насколько верно ли. Больно фигово получилось, но что-то выводит...

Осталось:

получение отчета о бригадах, с которыми данной бригаде предстоит работать на каждом объекте строительства

Может, кто подскажет?
0
107 / 107 / 5
Регистрация: 28.12.2012
Сообщений: 207
21.05.2013, 13:35
Попробуйте так:
T-SQL
1
2
3
4
5
6
7
8
9
10
11
DECLARE @Number INT = 3 -- Номер бригады, по которой необходимо получить информацию
 
SELECT bo.Title, bo.Number, w.Name, w.Birthday, w.Address, w.Phone
FROM [Бригада на объекте] bo
    INNER JOIN [Рабочий в бригаде] rb ON bo.Number = rb.Number
    INNER JOIN [Worker] w ON w.[Tab Number] = rb.[Tab Number]
WHERE bo.Title IN (
        SELECT b.Title
        FROM [Бригада на объекте] b
        WHERE b.Number = @Number
        )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.05.2013, 13:35
Помогаю со студенческими работами здесь

SQL Запросы в Базе Данных (SELECT, DELETE). Возникли некоторые трудности в их составлении
Здравствуйте, мне нужно сделать следующие запросы в базе данных &quot;Автовокзал&quot; (схема во вложениях): На Select: 1) Для каждого...

Триггер, вызывающий процедуру, в которой выполняется select к этой таблице (откуда был вызван триггер)
есть тригерр create or replace trigger quickstart.quickstart.ACRIONS_COMMIT_TR after update on quickstart.actions for each...

Запросы SELECT
CREATE TABLE podpischik (id INT PRIMARY KEY AUTO_INCREMENT, familie VARCHAR(50), period_podpiski DATE, index_izdania INT(20), adres...

Вложенные запросы SELECT
Такая проблема: есть 3 таблицы t1: t1_id, t1_name, t1_t2_id, t1_t3_id t2: t2_id, t2_name t3: t3_id, t3_name Надо сделать так чтобы...

Вложенные select запросы
Здравствуйте. Есть две таблицы: таблица, в которой записывается осмотры пациентов и таблица о пациентах. Нужно вывести информацию о...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru