SQL GROUP BY месяц - PullRequest
       22

SQL GROUP BY месяц

0 голосов
/ 07 декабря 2011

См. Изображение.

В моем отчете мне нужно указать общие затраты, часы, дни для каждого ProjectName

По какой-то причине я не могу получить представление о Группировке всех данных для каждого Проекта по месяцам, например, если вы видите, что в июле 2010 года есть 2 записи, я хочу, чтобы это отображалось в виде итогов в одной строке. Может ли кто-нибудь помочь мне.

SELECT     TOP (100) PERCENT Date_year, Date_month_number, Date_month_name, Service, Hours, Days, ProjectName, Cost
FROM         dbo.Resources_group_projectname
WHERE     (Service LIKE '%Housing%')
GROUP BY ProjectName, Date_year, Date_month_number, Date_month_name, Hours, Days, Cost, Service
ORDER BY Date_year, Date_month_number

enter image description here

Ответы [ 2 ]

3 голосов
/ 07 декабря 2011

Ваш список столбцов не содержит агрегатов.Попробуйте следующее:

SELECT Date_year, Date_month_number, Date_month_name, Service, SUM(Hours), SUM(Days), ProjectName, SUM(Cost)
FROM dbo.Resources_group_projectname
WHERE (Service LIKE '%Housing%')
GROUP BY ProjectName, Date_year, Date_month_number, Date_month_name, Service
ORDER BY Date_year, Date_month_number
1 голос
/ 07 декабря 2011

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

Поэтому вам следует сгруппировать по тому, что вы на самом деле хотите использовать в качестве ключа на строку в выходных данных, вероятно, Project_Name, Date_Year и Date_Month_Number. Каждое другое поле, которое вы отображаете, должно быть агрегированным полем, например, сумма (часы)

...