Использование:
SELECT t.errormessage, MIN(t.errordatetime) AS dt
FROM COMMONERROR t
GROUP BY t.errormessage, DATEADD(d, DATEDIFF(d, 0, t.errordatetime), 0)
Проверьте ссылки в GROUP BY; его не поймали, потому что МИН применялся к тому же столбцу.
Если предположить SQL Server 2005+, это проще сделать с помощью аналитики:
WITH base AS (
SELECT t.*,
ROW_NUMBER() OVER(PARTITION BY t.errormessage, DATEADD(d, DATEDIFF(d, 0, t.errordatetime), 0)
ORDER BY t.errordatetime) AS rk
FROM dbo.COMMONERROR t)
SELECT b.*
FROM base b
WHERE b.rk = 1
AND b.errornumber = '9001'
AND DATEADD(d, DATEDIFF(d, 0, b.errordatetime), 0) = DATEADD(d, DATEDIFF(d, 0, GETDATE()), 0)