查询不是我需要的总结

时间:2014-12-13 16:02:09

标签: sql-server-2008 tsql common-table-expression

我正在尝试编写一个CTE查询,而我正处于一个" New" CTE查询的标题。但我觉得我已经接近完成了我追求的最终比赛。我的查询工作完美,直到我投入CTE,甚至在包括CTE之后,它仍然可以完美地提供每个单独的实例而不是像我需要的SUM。我应该在语法中改变什么,以便查询只产生我需要的SUM?

;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]

编辑---顶部数据集是从查询返回的内容 - 底部数据集是我想看到的返回。 enter image description here

编辑#2 - 如果他们是一个更好的方法来编写查询仍然在我的图像中产生第二个数据集的所需结果我也是这样的!

1 个答案:

答案 0 :(得分:0)

您在组中有聚合列别名,您只需要员工姓名

更改您的分组
    GROUP BY pyrll.[Employee Name], pyrll.[Hours Worked This Week]

    GROUP BY pyrll.NameOnFile