Obtention de cette erreur: Chaque expression GROUP BY doit contenir au moins une colonne qui n'est pas une référence externe.Requête SQL: Chaque expression GROUP BY 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 suis en train d'obtenir le errormessage, et la première fois qu'il a eu lieu pour la journée en cours, et qui fonctionne parce que je viens de faire « Groupe par ErrorMessage ».
Cependant, si je veux trouver le premier pour 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 fonction pratique-dandy (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 utilisez-vous? –