|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.06.2009, 12:34 | #1 |
программирователь
Пользователь
Регистрация: 15.02.2009
Сообщений: 72
|
составить запрос с учетом времени
Доброго времени суток!
Имеется такая вот задача: В бд mysql имеется некая таблица. В ней хранятся данные по работе отдельных сотрудников. Необходимо вывести перечень сотрудников (у каждого свой уникальный номер) и его текущее дело. Дело задается отдельно, с указанием даты и времени. Т.е. нужно составить такой запрос, чтобы напротив фамилии сотрудника было указано его дело - т.е. дело, которое имеет максимальную дату и на эту дату-максимальное время. Все данные хранятся в одной таблице. Новое дело просто туда добавляется. Если кто может подсказать как это реализовать - буду очень признателен.
smile
|
08.06.2009, 13:46 | #2 |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
Код:
|
08.06.2009, 13:51 | #3 |
программирователь
Пользователь
Регистрация: 15.02.2009
Сообщений: 72
|
Спасибо! А нельзя ли пояснить следующий фрамент?
Код:
smile
|
08.06.2009, 15:06 | #4 | |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
Цитата:
emp_private_affair_date_time - поле с датой_временем_дела |
|
08.06.2009, 15:18 | #5 |
программирователь
Пользователь
Регистрация: 15.02.2009
Сообщений: 72
|
все получилось. Спасибо огромное!!!
smile
|
08.06.2009, 21:22 | #6 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
а можно поинтересоваться, а чем group by не угодил? ;( Мне, например, подобные фокусы не очень нравятся (правда, в практике это бывает иногда полезно). Но поясните, пожалуйста, в данном случае, чем Код:
Код:
|
|
08.06.2009, 22:53 | #7 | |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
Цитата:
логичнее конечно было бы иметь дело с отдельным справочником сотрудников + таблица ссылок на дела по-хорошему, group by логичнее делать в данном случае по праймари или хотя бы по признаку близкому к нему ну а ФИО сотрудников не является таковым - могут быть полные тёзки поэтому отдельно group by по ФИО делать не стоит, а совместно с праймари можно |
|
08.06.2009, 23:11 | #8 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
э нет... так не пойдёт.
заметьте, я же не предлагал убрать emp_no из group_by Безусловно, это было бы в корне неверно!! я предлагал, вместо использования max(FIO) брать просто FIO (и для этого FIO добавить в group_by после emp_no) вот я и пытаюсь понять, этот вариант Вам почему не понравился? (между нами - просто max(fio) само написалось, и так и решили оставить, так? ) |
09.06.2009, 11:53 | #9 | |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
Цитата:
я в предыдущем ответе пытался объяснить, что ТС задал вопрос не совсем по схеме HR, которая известна в некоторых кругах соответственно, нет никаких гарантий, что под одним emp_no вдруг не попадутся разные ФИО отсюда и такое расплывчатое решение (собсна как и расплывчатое задание), с попыткой избежать возможных проблем в первом приближении а точнее даже так - это не решение, а всего лишь шаблон, по которому ТС сам доделывает свою задачу (для точного решения пожалста точную постановку задачи) Последний раз редактировалось soleil@mmc; 09.06.2009 в 11:59. |
|
09.06.2009, 13:41 | #10 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
ладно. спасибо за ответ.
Вашу аргументацию я понял. я как раз про это и писал: Цитата:
select emp_no, max(FIO) вернёт одну фамилию (т.е. получатель запроса даже не увидит, что под номером X у него скрывается пяток фамилий. Он получит ОДНУ запись. а select emp_no, FIO ... group by emp_no, FIO вернёт вместе с номером все эти пяток фамилий... впрочем. я соглашусь с Вами - тут всё зависит и от базы и от требований к результатам запроса... Вот против этого - Цитата:
|
||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Необходимо составить запрос | span4 | SQL, базы данных | 17 | 05.04.2009 11:43 |
Как составить запрос из каталога? | wegeras | PHP | 1 | 28.10.2008 13:36 |
Как правельно составить запрос!! | Areostar | SQL, базы данных | 3 | 16.02.2008 19:49 |
составить запрос к таблицам T1 и T2 | MonteCarlos | SQL, базы данных | 13 | 03.02.2008 14:05 |
SOL-запрос интервала даты и времени в Delphi | DENIS_ | БД в Delphi | 5 | 23.12.2006 12:55 |