Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/14: Рейтинг темы: голосов - 14, средняя оценка - 4.79
2 / 2 / 0
Регистрация: 15.01.2010
Сообщений: 53

sql запросы

18.12.2011, 11:52. Показов 3013. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеются сотрудники предприятия, их дети и отделы, в которых работают сотрудники. Информация о каждом сотруднике - табельный номер, ФИО, паспортные данные, адрес, возраст, пол, должность и количество детей. Каждый работник обязательно принадлежит какому-либо отделу. Отдел имеет наименование, ФИО начальника. Необходимо регистрировать хронологию назначений - перемещений сотрудников (т.е. фиксировать дату начала работы в отделе и дату окончания). Информация о ребенке – номер свидетельства о рождении, имя, пол, дата рождения.
Выходные документы:
- Сформировать список работников заданного отдела на заданную дату, упорядоченный по возрасту.
- Выдать список сотрудников, имеющих более одного ребенка, сгруппированный по отделам с подсчетом максимального возраста сотрудников в отделах.

В первом запросе проблема с датой.. Откуда брать ее?
SQL
1
2
3
4
SELECT so.* ,s.*
FROM sotr so,sotr_otdel s
WHERE so.num_sotr=o.num_sotr
ORDER BY vozrast

Во втором условие не могу написать..
SQL
1
2
3
4
SELECT s.familia; name; MAX(vozrast),o.name_otdel, d.*
FROM sotr s,otdel o, deti d
WHERE s.num_sotr=o.num_sotr AND s.num_sotr=d.deti
ORDER BY name_otdel
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.12.2011, 11:52
Ответы с готовыми решениями:

SQL-запросы
Помогите, пожалуйста. При вводе неправильного пароля, программа очищает поля для ввода пароля(edit9) и его подтверждения (edit10), но при...

SQL - запросы
Что делать, если имя поля состоит из двух слов. На данную конструкцию делфи ругается: ...

SQL запросы
Помогите организовать запрос. Есть таблица Predmet в ней содержатся поля: Cod Name Ocenka CodAbituriena И есть таблица...

16
 Аватар для rdama
569 / 292 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
18.12.2011, 14:01
Необходимо регистрировать хронологию назначений - перемещений сотрудников (т.е. фиксировать дату начала работы в отделе и дату окончания).
Вот отсюда и брать дату.
А по логике делаем некие документы прием в отдел. Уход из отдела.
НО в принципе это должны быть приказы на увольнение и прием на работу.
Возраст вообще глупо хранить ибо он меняется с каждым днем. Храним только дату рождения, а возраст считаем как количество полных лет от разности (текущая дата - дата рождения)
А вообще давайте как вы структуру БД в студию. Чтоб не гадать на кофейной гуще.
0
2 / 2 / 0
Регистрация: 15.01.2010
Сообщений: 53
18.12.2011, 14:27  [ТС]
Структура и сами таблицы
и софт=)
Миниатюры
sql запросы  
Вложения
Тип файла: rar lb3.rar (5.9 Кб, 22 просмотров)
Тип файла: rar bdOK).rar (502.1 Кб, 26 просмотров)
0
71 / 71 / 7
Регистрация: 19.07.2011
Сообщений: 357
18.12.2011, 22:11
Цитата Сообщение от neomax38 Посмотреть сообщение
Структура и сами таблицы
и софт=)
Неправильная структура база данных. Отсюда все грабли ветвистые.
0
71 / 71 / 7
Регистрация: 19.07.2011
Сообщений: 357
18.12.2011, 22:44
Вот прикладываю как вариант.
Попробуй нарисовать самостоятельно стрелки связей и выложи тут.
Если не поймешь, дальше помогать бесполезно.
Миниатюры
sql запросы  
0
 Аватар для rdama
569 / 292 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
19.12.2011, 04:49
zremas, Забыл дату рождения в таблицу Sotrudniki надо добавить.
Еще не совсем согласен с твоей реализацией должностей в отделе.
Предлагаю собрать справочник должностей и вместо поля TypeOfRule использовать идентификатор из этого справочника.
Да еще в таблице Sotrudniki кинуть уникальный индекс на табельный номер.
Вообщем реализовать цепочки зависимости
Сотрудник->Отдел->Должность
Сотрудник->Дети
А там уже выборки можно как угодно налепить.
0
71 / 71 / 7
Регистрация: 19.07.2011
Сообщений: 357
19.12.2011, 08:07
Цитата Сообщение от rdama Посмотреть сообщение
zremas, Забыл дату рождения в таблицу Sotrudniki надо добавить.
Birthday = Дата Рождения

Цитата Сообщение от rdama Посмотреть сообщение
Еще не совсем согласен с твоей реализацией должностей в отделе.
Предлагаю собрать справочник должностей и вместо поля TypeOfRule использовать идентификатор из этого справочника.
Да еще в таблице Sotrudniki кинуть уникальный индекс на табельный номер.
Вообщем реализовать цепочки зависимости
Сотрудник->Отдел->Должность
Сотрудник->Дети
А там уже выборки можно как угодно налепить.
Человеку же надо историю назначений хранить. Вот для этого и таблица. Ессно она должна ссылаться на справочник Типы Ролей в этом отделе.
Роль и Должность не одно и то же.
Я просто забыл на схеме в Sotrudniki добавить Id_Dolznost и добавить сам справочник Должностей.
0
 Аватар для rdama
569 / 292 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
19.12.2011, 08:16
Блин Birthday не заметил. Потому что под исходным обозначением таблички.
Ну а назначение это не как раз ли перевод на должность?
Роль и Должность не одно и то же.
Или у нас разные понятия роли?
Какой ты смысл вкладываешь в это понятие в текущей задаче?
0
71 / 71 / 7
Регистрация: 19.07.2011
Сообщений: 357
19.12.2011, 08:28
Цитата Сообщение от rdama Посмотреть сообщение
Блин Birthday не заметил. Потому что под исходным обозначением таблички.
Ну а назначение это не как раз ли перевод на должность?

Или у нас разные понятия роли?
Какой ты смысл вкладываешь в это понятие в текущей задаче?
Роль это чисто административная терминология, есть должность старший научный сотрудник, но он может быть начальником отдела над такими же старшими научными сотрудниками.
Я тут понял задачу так, что при помощи Otdel-Sotrudniki можно убить двух зайцев
0
 Аватар для rdama
569 / 292 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
19.12.2011, 09:10
Ну исходя из кадрового учета это называется должностные обязанности. И по факту тот пример который вы привели. Это уже руководящая должность и должна она называться руководитель научной группы.
Это если все правильно, а ане как обычно.
Вообщем я понял тебя. Ждем ТС с пояснением чего делают. И какого рода учет нужен.
Кадровый или по исполняемому функционалу.
0
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
19.12.2011, 11:38
Цитата Сообщение от rdama Посмотреть сообщение
Вообщем реализовать цепочки зависимости
Сотрудник->Отдел->Должность
Для реальных систем эта цепочка строится немного иначе. Дело в том, что на самом деле кадровые системы оперируют не со справочником должностей в такой цепочка, а с позициями штатного расписания. Таким образом получаем
Сотрудник->Отдел-> Позиция штатного расписания -> Должность
0
2 / 2 / 0
Регистрация: 15.01.2010
Сообщений: 53
19.12.2011, 12:07  [ТС]
Ну вообщем таблицы эти преподователь уже принял, надо по ним запросы делать как то
0
71 / 71 / 7
Регистрация: 19.07.2011
Сообщений: 357
19.12.2011, 19:51
Цитата Сообщение от neomax38 Посмотреть сообщение
Ну вообщем таблицы эти преподователь уже принял, надо по ним запросы делать как то
"Да ужжж!", "Может и конфеты вы за меня есть будете!?"
Вот пример - учись студент, а то всю жизнь ключи будешь подавать:

1) Сформировать список работников заданного отдела на заданную дату, упорядоченный по возрасту.

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
DECLARE @mydate datetime
DECLARE @myotdel INT
 
SET @mydate=Getdate()  --или любую дату, вводимую в качестве переменной
-- подразумевается, что в таблице Sotrudniki есть еще поле Id_Otdel (забыл на схеме показать, сорри)
-- @myotdel целочисленное значение идентификатора передается через выбор строки в комбобоксе или из списка listbox
 
SELECT 
T1.Family
,T1.Name
,T1.TabelNumber
,T3.OtdelName
FROM Sotrudniki T1
INNER JOIN Otdeli T3 ON T1.Id_Otdel=T3.Id_Otdel
INNER JOIN Otdel_Sotrudniki T2 ON T1.Id_Sotrudnik=T2.Id_Sotrudnik AND T1.Id_Otdel=T2.Id_Otdel
WHERE @mydate BETWEEN T2.DateStart AND T2.DateEnd AND T1.Id_Otdel=@myotdel
ORDER BY T1.Birthday
0
2 / 2 / 0
Регистрация: 15.01.2010
Сообщений: 53
20.12.2011, 15:10  [ТС]
1) Сформировать список работников заданного отдела на заданную дату, упорядоченный по возрасту.
SQL
1
2
3
SELECT * FROM sotrudniki s, sotr_otdel so, otdel o
WHERE so.num_otdel=o.num_otdel AND so.num_sotr=s.num_sotr AND o.Name_otdel=:p AND so.data_nach_rab=:z
ORDER BY vozrast
2) Выдать список сотрудников, имеющих более одного ребенка, сгруппированный по отделам с подсчетом максимального возраста сотрудников в отделах.
SQL
1
2
3
4
SELECT s.*,o.name_otdel, d.*
FROM sotrudniki s,otdel o, deti d
WHERE 1<(SELECT COUNT (*) FROM deti WHERE s.num_sotr=d.num_sotr) 
ORDER BY name_otdel
0
71 / 71 / 7
Регистрация: 19.07.2011
Сообщений: 357
21.12.2011, 00:35
Цитата Сообщение от neomax38 Посмотреть сообщение
1) Сформировать список работников заданного отдела на заданную дату, упорядоченный по возрасту.
SQL
1
2
3
SELECT * FROM sotrudniki s, sotr_otdel so, otdel o
WHERE so.num_otdel=o.num_otdel AND so.num_sotr=s.num_sotr AND o.Name_otdel=:p AND so.data_nach_rab=:z
ORDER BY vozrast

so.data_nach_rab=:z = это не корректно, вряд ли все работники начали работать одновременно, поэтому и надо искать работников, начавших работать, в пределах задаваемого диапазона или, по крайней мере, поставить so.data_nach_rab < :z
0
2 / 2 / 0
Регистрация: 15.01.2010
Сообщений: 53
21.12.2011, 12:25  [ТС]
Цитата Сообщение от zremas Посмотреть сообщение
so.data_nach_rab=:z = это не корректно, вряд ли все работники начали работать одновременно, поэтому и надо искать работников, начавших работать, в пределах задаваемого диапазона или, по крайней мере, поставить so.data_nach_rab < :z
Ну я собственно не спорю) Но преподователь так сказал сделать=)
0
71 / 71 / 7
Регистрация: 19.07.2011
Сообщений: 357
21.12.2011, 19:04
Цитата Сообщение от neomax38 Посмотреть сообщение
Ну я собственно не спорю) Но преподователь так сказал сделать=)
Интересные у вас преподы!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.12.2011, 19:04
Помогаю со студенческими работами здесь

SQL запросы
Даны две таблицы.Таблица Товар с полями Код_товара, Название_товара, Категория_товара, Ед_измерения, Цена. Таблица Приход_товара с полями...

sql запросы
Вылазит ошибка Project Projectl.exe raised exception class EOleException with message 'Unspecified error'. Process stopped. Use Step or Run...

SQL Запросы
Помогите пожалуйста написать правильно запрос SQL, так, чтобы в DBGrid показывал только ту информацию из баблицы, которую мне надо, вот код...

Sql запросы
Приветик!!! Дело так у меня в таблице 3 столбца (фамилия,имя, отчество) мне надо переоброзовать в 1 столбец ФИО. SQl server а интерфейс в...

Запросы SQL
Помогите разобраться, простой запрос, а получается ошибка при в вводе данных в EDIT Ошибка:Invalid field name ...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru