SQL GROUP BY月

时间:2011-12-07 15:56:09

标签: sql sql-server syntax reporting-services group-by

见图。

在我的报告中,我需要为每个'ProjectName'

计算总费用,小时数,天数

出于某种原因,我无法得到我的观点,按月对每个项目的所有数据进行分组,例如,如果您看到2010年7月有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 个答案:

答案 0 :(得分:3)

您的列列表不包含任何聚合。请尝试以下方法:

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 :(得分:1)

您的重复项不仅仅是项目和月份,而是包括小时和日期。

因此,您应该按照您实际想要的内容进行分组,作为输出中每行的键,可能是Project_Name,Date_Year和Date_Month_Number。您显示的每个其他字段都应该是一个聚合字段,例如总和(小时)