Requête SQL: Chaque GROUPE PAR l'expression doit contenir au moins une colonne qui n'est pas une référence externe

Obtenir cette erreur:
Chaque GROUPE PAR l'expression doit contenir au moins une colonne qui n'est pas une référence externe.

RowId   ErrorDatetime             ErrorNum         ErrorMessage 
824 2010-09-24 08:01:42.000   9001       Account 55 not found
823 2010-09-24 08:00:56.000   9001      Account 22222222222 not found
822 2010-09-24 05:06:27.000   9001      Account 55 not found
821 2010-09-24 05:05:42.000   9001      Account 22222222222 not found

Je vais essayer d'obtenir les errormessage, et la première fois qu'elle s'est produite pour la journée en cours, et c'est de travailler parce que je ne "Groupe par ErrorMessage".

Cependant, si je veux trouver le premier de chaque jour:

SELECT Min(ErrorDateTime) as 'ErrorDateTime', Min(ErrorMessage) as 'ErrorMessage'
FROM CommonError 
WHERE dbo.StripTimeFromDate(ErrorDateTime) = dbo.StripTimeFromDate(getdate()) 
     and ErrorNumber = '9001' 
GROUP BY dbo.StripTimeFromDate(getdate()), ErrorMessage 

La pratique-dandy de la fonction (à partir de http://bloggingabout.net/blogs/jschreuder/archive/2007/03/13/useful-t-sql-date-functions.aspx):

ALTER FUNCTION [dbo].[StripTimeFromDate] (@inputDate DATETIME)
RETURNS DATETIME
BEGIN
    RETURN DATEADD(d, DATEDIFF(d, 0, @inputDate), 0)
END
  • Quelle version de SQL Server que vous utilisez?
InformationsquelleAutor NealWalters | 2010-09-24