J'ai de l'aide de Chegg et la plupart des réponses me sont données ne travaillent pas pour moi. Ma première tâche est d'écrire une requête où elle énumère le projet avec la plupart des heures.
Une réponse était la suivante: p> erreur i get: p> MSG 130, niveau 15, état 1, ligne 1
Impossible d'effectuer une fonction agrégée sur une expression contenant un agrégat ou une sous-requête. P> secondaire est p> erreur que je reçois est: p> < P> MSG 130, niveau 15, État 1, Procédure Project_with_Proust_hours, ligne 5 [Ligne de départ du lot 0]
Ne peut pas effectuer une fonction d'agrégat sur une expression contenant un agrégat ou une sous-requête. P> Le résultat final im cherche est que la console affiche seulement 1 Proj_id ou PROJ_NAME qui a les heures les plus travaillées de résumer tous les heures travaillées des employés qui travaillaient dans ce projet. P> Toute aide sur la manière de résoudre l'une ou l'autre de ces requêtes est grandement appréciée p> Voici le script pour créer ma base de données si elle aide p>
3 Réponses :
Utilisation de CTE code>, requête pour afficher uniquement les données avec le
Max CODE> Heures de travail hebdomadaire
;
WITH cte
AS (SELECT
project.Proj_ID,
proj_Name,
SUM(weekly_work_hrs) sumofhrs
FROM Project
INNER JOIN work_period
ON Project.Proj_ID = work_period.Proj_Id
GROUP BY project.Proj_ID,
proj_Name)
SELECT
*
FROM cte
WHERE sumofhrs = (SELECT
MAX(sumofhrs)
FROM cte)
Vous pouvez interroger, agréger et simplement prendre le top 1
Merci, donc ajouté avec la clause des liens et un groupe fixe à ne pas "max ()" le nom pour confondre les liens en somme ()
Vous pouvez commander par code> la somme des heures de descente et choisissez le résultat supérieur uniquement avec
top 1 code>. Si vous souhaitez afficher tous les principaux projets en cas d'une cravate, utilisez le
avec les cravates code> d'option sur
haut code>. Sinon, omettez le
avec des cravates code> à (au hasard) en choisir un en cas d'égalité. Vous voudrez peut-être aussi
rejoindre code> au lieu d'une jointure intérieure code> de sorte que, si vous n'avez que des projets que personne n'a encore fonctionné, ils sont sortis de toute façon - zéro heure est techniquement techniquement également valide maximum.
SELECT TOP 1
WITH TIES
p.proj_id,
p.proj_name
FROM project p
LEFT JOIN work_period wp
ON wp.proj_id = p.proj_id
GROUP BY p.proj_id,
p.proj_name
ORDER BY sum(coalesce(wp.weekly_work_hrs, 0)) DESC;