Sql server 2008 查询不是我所需要的总和

Sql server 2008 查询不是我所需要的总和,sql-server-2008,tsql,common-table-expression,Sql Server 2008,Tsql,Common Table Expression,我正在尝试编写一个CTE查询,在为CTE查询编写一个新标题之前,我已经准备好了。但我觉得我已经接近我所追求的最后一局了。在输入CTE之前,我的查询工作得很好,即使在包含CTE之后,它仍然工作得很好,只是给出了每个实例,而不是我需要的总和。我应该在语法中修改什么,以便查询只生成我需要的总和 ;With CTE As ( SELECT BadgeNum ,NameOnFile ,SUM((CONVERT(decimal(18,6),pyrll.hoursworked)

我正在尝试编写一个CTE查询,在为CTE查询编写一个新标题之前,我已经准备好了。但我觉得我已经接近我所追求的最后一局了。在输入CTE之前,我的查询工作得很好,即使在包含CTE之后,它仍然工作得很好,只是给出了每个实例,而不是我需要的总和。我应该在语法中修改什么,以便查询只生成我需要的总和

;With CTE 
As
(
  SELECT 
    BadgeNum
    ,NameOnFile
    ,SUM((CONVERT(decimal(18,6),pyrll.hoursworked))) AS [Hours]
  FROM 
    masterpayroll pyrll
  Group By
    BadgeNum,NameOnFile
)
SELECT
,SUM(pyrll.[Hours]) As [Hours Worked This Week]
,pyrll.NameOnFile As [Employee Name]
,COUNT(case when pf.arrest_status in ('Final', 'Complete',) And pf.supervisorSignoff IS NOT NULL   THEN pf.ID else null end)
,COUNT(case when pf.arrest_status in ('Pending', 'Incomplete', 'On Hold') THEN pf.ID else null end)
FROM personelFiles pf
INNER JOIN CTE pyrll
ON pf.ID = pyrll.BadgeNum
WHERE pf.officerName Like 'Gat%'
GROUP BY pyrll.[Employee Name], pyrll.[Hours Worked This Week]
编辑——顶部数据集是从查询返回的数据集——底部数据集是我希望看到返回的数据集。


编辑2-如果他们是一个更好的方式来编写查询,仍然产生我下面的图片中的第二个数据集的预期结果,我也准备好了

如果在group by中有聚合列别名,则只需要员工名

从中通过子句更改您的组

    GROUP BY pyrll.[Employee Name], pyrll.[Hours Worked This Week]


你到底需要什么?您可以更具体一点,或者提供示例输出吗?@eduardata-包括图片。顶部结果是查询包含的内容,底部结果集是我希望它显示的内容。将我的Group By语句更改为上面的内容仍然会生成单独的结果。@UGh,yes type。现在正在更新初始帖子。@user2676140,小组成员应该会修复,我不认为还有其他错误。我还改为nameoffile,而不是员工姓名。
    GROUP BY pyrll.NameOnFile