Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Статистика пользователей  [new]
VIT2708
Member [заблокирован]

Откуда: Киев
Сообщений: 1387
Есть таблица Расписание рабочих дней сотрудников

dbo.Schedule
id bigint,
userId bigint,
groupId bigint, (операторы супервизоры и т. д.)
date smalldatetime, (текущая дата без времени)
dayBegin datetime, (начало рабочего дня)
dayEnd datetime, (конец рабочего дня)
dinnerBegin datetime, (начало обеда)
dinnerEnd datetime, (конец обеда)
daytype int (0 - рабочий день, 1 - выходной и т. д.)

Я хотел бы написать модуль где бы показывать сколько сотрудников работает в промежутках времени
Делал это на стороне клиента но как то много циклов и проверок получается, может можна сделать попроще через sql

select (интервал времени 15 мин), groupId, count(id) from dbo.Schedule where ??????

Что бы результат получился
время ; група ; к-во
7:00 ; 1; 10
7:15 ; 1; 15
7:30 ; 2; 5
7:45 ; 3; 2
8:00 ; 1; 15
.........
22:00 ; 1; 15

Подскажите как такое написать?

Спасибо.
26 июн 14, 16:24    [16224630]     Ответить | Цитировать Сообщить модератору
 Re: Статистика пользователей  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31425
VIT2708
Подскажите как такое написать?
Начать нужно с создания таблички с интервалами времени. Если запрос показывает данные только за один день, то можно обойтись и временной структурой в виде таблицы переменной или подзапроса.

И потом джойнить вашу таблицу dbo.Schedule с этой таблицорй интервалов.
26 июн 14, 16:37    [16224727]     Ответить | Цитировать Сообщить модератору
 Re: Статистика пользователей  [new]
VIT2708
Member [заблокирован]

Откуда: Киев
Сообщений: 1387
alexeyvg,

Вообщем направление понятно, но проблема в познаниях sql я не так силен в нем
Могли бы вы показать маленький пример?
26 июн 14, 16:56    [16224856]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить