N'est pas valide dans la liste de sélection, car il n'est pas contenue dans une fonction d'agrégation ou de la clause GROUP BY

J'ai été la création d'une requête, et en quelque sorte, il semble y avoir un problème dans ma requête.

Voici ma requête:

Select
E.last_name as [Last Name],
E.first_name as [First Name],
SUM(CASE WHEN empAttendance.status = 'Absent' THEN 1 ELSE 0 END) as [Absences],
SUM(CASE WHEN empAttendance.status = 'Late' THEN 1 ELSE 0 END) as [Number of Lates]
from
empAttendance
INNER JOIN employee E ON empAttendance.emp_id = E.emp_id
WHERE E.company_id = (Select company_id from company Where company_name = @company)

Dans lequel la table employee a la emp_id colonne qui est son PK et aussi la empAttendance a la emp_id comme FK.

table employee a la last_name et la first_name colonnes.

Le message d'erreur indique : Column 'employee.last_name' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

Merci d'avance.

Le croire ou pas, le message d'erreur renvoyé est à la fois précis, et une ordonnance pour la façon de corriger l'erreur. Il peut en cascade à travers quelques itérations que vous ajoutez des colonnes pour le GROUPE PAR un par un, mais c'est le prix de l'expérience.

OriginalL'auteur Marcus Ang | 2014-03-12