2014-12-13 4 views
0

Я пытаюсь написать запрос CTE, и я до того, как «Новый» заголовок для запросов CTE. Но я чувствую, что я достаточно близок к тому, чтобы получить конечную игру, за которой я работаю. Мой запрос работает идеально, пока я не бросаю CTE, и даже после включения CTE он по-прежнему работает идеально, просто дает каждому отдельному экземпляру, а не 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] 

EDIT --- Верхний набор данных - это то, что возвращается из запроса - нижний набор данных - это то, что я хочу увидеть возвращенным. enter image description here

EDIT # 2 - Если это лучший способ написать запрос, чтобы по-прежнему получить желаемый результат второго набора данных на моем изображении ниже, я тоже за это!

+0

что именно вам нужно? Можете ли вы быть более конкретным или предоставить образец вывода? –

+0

@EduardUta - изображение включено. Главный результат - это то, что включает запрос, нижний результирующий набор - это то, что я хочу показать. – user2676140

ответ

0

Вы совокупного столбца псевдоним в группе по, вам нужно только имя сотрудника

Изменить группу по статье из

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

Для

GROUP BY pyrll.NameOnFile 
+0

Изменение моей группы По заявлению на то, что у вас выше, все еще выдаются индивидуальные результаты. – user2676140

+0

У CTE нет id, это должно быть badgenum правильно? – radar

+0

@UGh, есть type. Обновление исходного сообщения сейчас. – user2676140

Смежные вопросы