SQL запрос перерыв в 15 минут - PullRequest
2 голосов
/ 19 декабря 2011

Иметь таблицу с datetime_in, datetime_out, card_id, group.Знайте, я хочу вывод по следующим вопросам:

group  ; date       ;  quarterTime    ; persons_in ; hours
group1 ; 17-02-2010 ; 00:00 - 00:15  ; 0          ; 0
group1 ; 17-02-2010 ; 00:15 - 00:30  ; 0          ; 0
group1 ; 17-02-2010 ; 00:30 - 00:45  ; 0          ; 0
~etc
group1 ; 17-02-2010 ; 13:00 - 12:15  ; 334        ; 1483

end then the same for all the groups starting with 00:00 until 23:45

, поэтому для каждого квартала дня я хочу иметь запись, сгруппированную по группе, дате (в днях) и quarTime.Затем в person_in я хочу, чтобы количество записей за этот квартал, а в часах, сколько человеко-часов отработано в общей сложности за этот день до конца текущего квартала.так, чтобы только становиться все выше и выше в день, в то время как количество лиц - только в пределах этого квартала.Поэтому мой вопрос в том, что теперь у меня есть очень грязный скрипт на C #, для оптимизации, который я хочу запустить, нужно всего лишь 1 запрос.

Я не против использования хранимых процедур, но так как я не очень хорош в SQL, я предпочитаю T-SQL.

У кого-нибудь есть идеи, как это сделать?примеры?

1 Ответ

2 голосов
/ 19 декабря 2011

Вы можете использовать эту логику для преобразования дат для группировки:

SELECT 
        CONVERT(bigint,Year(GETDATE())) * power(10,7) +
        Month(GETDATE()) * POWER(10,5) +
        Day(GETDATE()) * POWER(10,3) +
        Datepart(hh,GETDATE()) * POWER(10,1) +
        DATEPART(mi,GETDATE()) / 15 AS Agg_Date

19/12/2011 13:31 => 20111219132

Каждые 15 минут имеют один и тот же ключ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...