|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.12.2011, 15:20 | #1 |
Пользователь
Регистрация: 01.06.2011
Сообщений: 53
|
диапазоны дат - смены
Добрый день
Имеется ещё одна задача, по которой мне бы хотелось получить подсказку, или алгоритм составления запроса. Есть таблица статусов продавцов, в которой кладутся ID продавцов, время изменения статуса, и собственно сами статусы - выход на смену и уход со смены. Выходы плавающие, то есть нет никакой определённости - в понедельник один продавец может выйти в 9 утра, закрыться в час дня, второй - с 10 до 19, во вторник же - первый продавец с часу дня до 9 вечера, второй - с 11 вечера до 9 утра. Имеется таблица с действиями продавцов - обслуживание клиента, где меня интересует только опять-таки ID продавца и дата действия, или обработанной заявки. Так вот, сама задача состоит в том, чтобы получить для конкретного продавца все его смены (дата выхода - дата закрытия), и количество выполненых заявок за каждый полученный период. Как меньшей кровью добиться этого? Можно ли сделать это только средствами СУБД (MySQL в моём случае), либо ещё на клиенте нужны будут действия? Заранее спасибо |
16.12.2011, 15:28 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Если время начала смены и конца смены в одной записи таблицы статусов, то можно одним простым запросом все решить. Если же разнесены по разным записям, то прийдется сильно постараться
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
16.12.2011, 15:38 | #3 |
Пользователь
Регистрация: 01.06.2011
Сообщений: 53
|
В том-то и дело, что в разных записях, стоит дата и ид статуса - грубо говоря, 1 - выход на смену, 2 - закрытие. Была уже мысль сначала формировать временную таблицу с 3 столбцами - ид смены, начало, конец, и уже с ней связывать - вопрос тогда, каким именно простым запросом можно это сделать? Такую временную таблицу я создам, воспользуюсь хранимками.
|
16.12.2011, 15:46 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
16.12.2011, 15:49 | #5 |
Пользователь
Регистрация: 01.06.2011
Сообщений: 53
|
Конец открытой смены можно в процедуре забивать текущей датой, не проблема - сейчас попробую реализовать, спасибо ещё раз, на первый взгляд действительно просто
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ограничения или диапазоны | hasana | Общие вопросы C/C++ | 2 | 13.01.2011 19:49 |
Динамические диапазоны | LaryMusa | Microsoft Office Excel | 8 | 05.07.2010 21:20 |
Как просуммировать диапазоны? | Алексей11111 | Microsoft Office Excel | 7 | 28.11.2009 18:19 |
Где найти диапазоны типов? | TwiX | Общие вопросы C/C++ | 3 | 21.11.2009 20:48 |
Суммесли и диапазоны на листах | _ДЭН_78 | Microsoft Office Excel | 1 | 18.09.2007 15:38 |