получить количество строк динамического столбца - PullRequest
2 голосов
/ 04 февраля 2012

У меня есть база данных сервера sql, и я использую следующий запрос, чтобы получить список дат посещаемости, на которые опаздывает какой-либо сотрудник.

SELECT MIN(att.Date) 
  from Attendance att
  where att.Date between '12/01/2011 00:00:00' and '12/31/2011 00:00:00' 
  and att.EmpID = 4700 
  GROUP BY EmpID, CONVERT(VARCHAR, att.Date , 111) 
  having min(CONVERT(VARCHAR, att.Date , 8)) > '09:00:00'

запрос возвращает список дат без имени столбца. мне нужно посчитать даты этого списка. как это можно сделать с помощью этого запроса?

1 Ответ

3 голосов
/ 04 февраля 2012

Попробуйте это:

WITH CTE AS (
    SELECT MIN(att.Date) [minDate]
    FROM Attendance att
    WHERE att.Date between '12/01/2011 00:00:00'
    AND '12/31/2011 00:00:00'
    AND att.EmpID = 4700
    GROUP BY EmpID, CONVERT(VARCHAR, att.Date , 111)
    HAVING MIN(CONVERT(VARCHAR, att.Date , 8)) > '09:00:00')

SELECT COUNT(minDate) FROM CTE

Alt без использования CTE:

SELECT COUNT(minDate) FROM (
    SELECT MIN(att.Date) [minDate]
    FROM Attendance att
    WHERE att.Date between '12/01/2011 00:00:00'
    AND '12/31/2011 00:00:00'
    AND att.EmpID = 4700
    GROUP BY EmpID, CONVERT(VARCHAR, att.Date , 111)
    HAVING MIN(CONVERT(VARCHAR, att.Date , 8)) > '09:00:00') AS tbl
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...