将SQL数据拆分为几个月

时间:2012-09-25 12:59:48

标签: sql sql-server-2008 tsql

今年我有一个数百行的数百行。 (MS SqlServer 2k8)

我想将此数据集拆分为客户查询/月。

到目前为止我所拥有的是什么;

Select count(id) As Customers, DatePart(month, enquiryDate) as MonthTotal, productCode From customerEnquiries
where enquiryDate > '2012-01-01 00:00:00'
group by productCode, enquiryDate

但是这会为每个数据项生成一行。 (而我希望每个数据项每月都有一行。)

那么如何更改上面的查询,以便取代

1 1 10
1 1 10
1 1 11
1 2 10
1 2 10

...

我得到了

2 1 10    <-- 2 enquiries for product code 10 in month 1
1 1 11    <-- 1 enquiries for product code 11 in month 1
2 2 10    <-- 2 enquiries for product code 10 in month 2
etc

作为一个额外的问题,是否有一种简单的方法来命名每个月,因此输出是1月,2月,3月,而不是月份列中的1,2,3?

2 个答案:

答案 0 :(得分:6)

试试这个

Select count(id) As Customers, DatePart(month, enquiryDate) as MonthTotal, productCode From customerEnquiries
where enquiryDate > '2012-01-01 00:00:00'
group by productCode, DatePart(month, enquiryDate)

这可能会对你有帮助。

答案 1 :(得分:2)

对于奖金,DATENAME(MONTH, enquiryDate)会为您提供月份的名称。