Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2014, 17:49   #1
dark-soul92
Новичок
Джуниор
 
Регистрация: 28.12.2014
Сообщений: 2
Печаль Время заданных суток, на которое пришлось максимально количество клиентов

Имеется таблица сеансов подключения к интернету
№пп | логин | IP | Дата | время начала соединения | время окончания|

Нужно соорудить запрос на выборку:
-Время заданных суток, на которое пришлось максимальное количество клиентов

Пожалуйста помогите, почти всю курсовую сделал, лишь это остановило..
Вообще сам проект на делфи, база MS Access
dark-soul92 вне форума Ответить с цитированием
Старый 28.12.2014, 18:27   #2
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,770
По умолчанию

Подсказка: запрос с group by и having.
Vapaamies вне форума Ответить с цитированием
Старый 28.12.2014, 18:57   #3
dark-soul92
Новичок
Джуниор
 
Регистрация: 28.12.2014
Сообщений: 2
Радость Ответ

Код HTML:
SELECT TOP 1 v0.dt, v0.x_t, sum(v1.flag) AS max_sess_cnt
FROM (select Dates as dt,  Time_begin as x_t,  1 as flag from Sessions
          union all
         select Dates as dt, Time_end as x_t, -1 as flag from Sessions
       )  AS v0 INNER JOIN (select Dates as dt,  Time_begin as x_t,  1 as flag from Sessions
          union all
         select Dates as dt, Time_end as x_t, -1 as flag from Sessions
       )  AS v1 ON (v0.x_t >= v1.x_t) AND (v0.dt = v1.dt)
WHERE v0.dt = "24.12.2014"
GROUP BY v0.dt, v0.x_t
ORDER BY sum(v1.flag) DESC;
Спасибо Добрый Э - Эх
dark-soul92 вне форума Ответить с цитированием
Старый 30.12.2014, 15:37   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Сильно кажется, что проще можно
Код:
SELECT TOP 1 v0.Time_begin,COUNT(*) AS max_sess_cnt
  from Sessions v0,Sessions v1
  WHERE v0.Dates = "24.12.2014" AND
        V1.Time_begin<=V0.Time_begin AND
        V1.Time_end>=V0.Time_begin AND v1.Dates = v0.Dates 
  GROUP BY v0.Time_begin
  ORDER BY 2 DESC
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 30.12.2014 в 15:40.
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Доброе время суток, есть проблема в создании проекта на Delphi. Антон 656 Помощь студентам 4 17.03.2014 00:09
Доброе время суток. Ищу совет с оптоволоконным подключением. serjAk Компьютерное железо 3 12.05.2013 16:35
Добое время суток.... Allen Iverson Фриланс 2 25.04.2009 07:39
Добре время суток,камрады!!! Grundic Паскаль, Turbo Pascal, PascalABC.NET 9 26.01.2009 12:13