3

我有一个今年有几百行的数据表。(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

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

4

2 回答 2

7

尝试这个

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)

这可能会对您有所帮助。

于 2012-09-25T13:02:53.833 回答
2

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

于 2012-09-25T13:05:24.473 回答