| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Составление SQL-запросов > Запрос на самого трудягу |
| Автор: madmasm 18.10.2009, 14:49 | ||
| Помогите организовать запрос, факт в том что с SQL дело раньше не имел... Есть таблица, то есть расписание работы врачей, организованная следующим образом : http://ipicture.ru/ необходимо найти самого загруженного по расписанию врача(id_doctor), понятно что при нахождении такового необходимо будет использовать разницу и сложение времени и без таковой структуры не обойтись:
просто не могу понять как правильно организовать запрос, нужна помощь, плиз... |
| Автор: Gluttton 18.10.2009, 15:12 | ||||
| 1. Пусть таблица называется t. 2. Расчет длительность загрузки платформозависима, поэтому я просто покажу разницу условно: okonchanie-nachalo. Отсюда вопрос к топикстартеру какая СУБД? Сначала отобразим продолжительность загрузки для каждого врача за каждый день:
Затем сгрупируем продолжительность работы для каждого врача:
И в заключении выбираем доктора с максимальной загрузкой... В зависимости от СУБД запрос может быть составлен по разному... |
| Автор: madmasm 18.10.2009, 16:33 |
| СУБД - MS SQL Server 2005, я в ней на расчете общего количесва проработаных часов сотрудником и застрял(( |
| Автор: Gudinya 18.10.2009, 16:43 | ||
ну если стили побоку то что то типа
неправильно посты прочел... так что извиняюсь за написанный бред |
| Автор: Gluttton 18.10.2009, 17:53 | ||||
Gudinya, помоему вложености лишние
Добавлено @ 17:59 madmasm, вот http://www.sql-ex.ru/help/select9.php#dtime можно посмотреть функции для работы с датами... Оказывается в MS SQL есть чудо-функция datediff и я немного перемудрил с переводом в минуты... Должно получиться что то вроде вот такого:
Ну и дальше в том же духе P.S. mi - это для минут, для секунд - ss, а для часов - hh. |
| Автор: Gudinya 18.10.2009, 18:07 |
В начале отрабатывает блок Where затем идет сортировка т.е. у в твоем запросе выберется только сумма первой строки ;) |
| Автор: Gluttton 18.10.2009, 18:15 | ||
Буду знать Но и сортировка в подзапросе не пройдет! |
| Автор: Gudinya 18.10.2009, 18:24 |
где и что не отработает не понял но все же если я не где не опечатался представленный запрос выберет врача с максимальным количеством времени честно честно )) но все это уже тоже |
| Автор: madmasm 18.10.2009, 18:36 | ||
огромное СПАСИБО!!!!! Я можно так сказать постиг дзен за сегодня читая msdn)))) вот что получилось))
|
| Автор: Gluttton 18.10.2009, 18:48 | ||||
| Да собственно говоря и не зачто Учил SQL http://www.sql-ex.ru. Там запросы выполняются на SQL Server 2005, диалект SQL 92, так вот там запросы с сортировкой в подзапросе вызывают ошибку. Т.е. вот такое не пройдет:
После твоего поста попробовал запрос с сортировкой в подзапросе у себя на Firebird 2.1 - прошел, для меня єто большое открытие
Теперь верю |