![]() |
|
Модераторы: skyboy |
![]()
|
|
| madmasm |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 8.10.2009 Репутация: нет Всего: нет |
Помогите организовать запрос, факт в том что с SQL дело раньше не имел...
Есть таблица, то есть расписание работы врачей, организованная следующим образом : ![]() необходимо найти самого загруженного по расписанию врача(id_doctor), понятно что при нахождении такового необходимо будет использовать разницу и сложение времени и без таковой структуры не обойтись:
просто не могу понять как правильно организовать запрос, нужна помощь, плиз... |
|||
|
||||
| Gluttton |
|
||||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: 24 Всего: 54 |
1. Пусть таблица называется t.
2. Расчет длительность загрузки платформозависима, поэтому я просто покажу разницу условно: okonchanie-nachalo. Отсюда вопрос к топикстартеру какая СУБД? Сначала отобразим продолжительность загрузки для каждого врача за каждый день:
Затем сгрупируем продолжительность работы для каждого врача:
И в заключении выбираем доктора с максимальной загрузкой... В зависимости от СУБД запрос может быть составлен по разному... -------------------- Слава Україні! |
||||
|
|||||
| madmasm |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 8.10.2009 Репутация: нет Всего: нет |
СУБД - MS SQL Server 2005, я в ней на расчете общего количесва проработаных часов сотрудником и застрял((
|
|||
|
||||
| Gudinya |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 2.2.2008 Репутация: 2 Всего: 8 |
ну если стили побоку то что то типа
неправильно посты прочел... так что извиняюсь за написанный бред Это сообщение отредактировал(а) Gudinya - 18.10.2009, 17:46 |
|||
|
||||
| Gluttton |
|
||||||||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: 24 Всего: 54 |
Рекомендую привести к минимальной учитывемой единице времени (час, минута или секунда) и по ним работать. Т.е. (для случая учета с точностью до минуты) берем начало, вычленяем из него часы и минуты и переводим полученое значение в минуты...
То же повторяем и для времени окончания:
Вычитаем из конца начало:
А потом находим сумму (в минутах) с группировкой по врачам. Далее находим максимум. И уже в самом конце переводим минуты в дни часы и т.д. -------------------- Слава Україні! |
||||||||
|
|||||||||
| Gluttton |
|
||||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: 24 Всего: 54 |
Gudinya, помоему вложености лишние
Добавлено @ 17:59 madmasm, вот тут можно посмотреть функции для работы с датами... Оказывается в MS SQL есть чудо-функция datediff и я немного перемудрил с переводом в минуты... Должно получиться что то вроде вот такого:
Ну и дальше в том же духе P.S. mi - это для минут, для секунд - ss, а для часов - hh. Это сообщение отредактировал(а) Gluttton - 18.10.2009, 18:25 -------------------- Слава Україні! |
||||
|
|||||
| Gudinya |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 2.2.2008 Репутация: 2 Всего: 8 |
||||
|
||||
| Gluttton |
|
|||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: 24 Всего: 54 |
Буду знать Но и сортировка в подзапросе не пройдет! -------------------- Слава Україні! |
|||
|
||||
| Gudinya |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 2.2.2008 Репутация: 2 Всего: 8 |
||||
|
||||
| madmasm |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 8.10.2009 Репутация: нет Всего: нет |
огромное СПАСИБО!!!!! Я можно так сказать постиг дзен за сегодня читая msdn)))) вот что получилось))
|
|||
|
||||
| Gluttton |
|
||||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: 24 Всего: 54 |
Да собственно говоря и не зачто Учил SQL вот на этом ресурсе. Там запросы выполняются на SQL Server 2005, диалект SQL 92, так вот там запросы с сортировкой в подзапросе вызывают ошибку. Т.е. вот такое не пройдет:
После твоего поста попробовал запрос с сортировкой в подзапросе у себя на Firebird 2.1 - прошел, для меня єто большое открытие
Теперь верю -------------------- Слава Україні! |
||||
|
|||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |