Я пытаюсь построить запрос в MSSQL, который подсчитывает, сколько раз кто-то опаздывает, например, для одного человека может быть 4 записи в день для одного человека. Например, прибытие, ужин, ужин, Оставляя.Подсчитайте, сколько раз значение равно
как быстрый пример, предполагая, что «прибывающее» время - 9:15 утра, а ожидаемое время прибытия - 9 утра, это будет считаться опозданием, однако, если мне нужно проверить данные за неделю, так что 5 дней, в идеале было бы 20 записей, и каждый 4-й отчет был бы тем, который нам нужно считать. однако данные не настолько надежны, так как все зависит от пользователя системы, просматривающего карту.
Что было бы лучшим способом сделать это?
SELECT COUNT(EventTM) AS Time
FROM
CHINA_VISION_DorEvents
WHERE
(CardCode = '007b8a5a')
AND (DorCtrls_Ref = '16')
AND (EventTM >= DATEADD(hour, 0, DATEADD(day, 0, CAST(CAST(GETDATE() AS date) AS datetime))))
And convert(Time,EventTM) < '08:08:00'
Этот запрос не может работать в любом из аспектов того, что я описал, но в принципе это может сказать мне, если они были рано для одного конкретного дня
и мне нужно знать, если они были рано/late для каждого дня в диапазоне дат.
Любая помощь по этому вопросу было бы весьма признателен
Do GROUP BY "date-without-time-part" и просто COUNT (*). – jarlh
Почему вы делаете конвертировать в счет? – artm
@artm no reason, он был там из более ранних тестов –