如何在SQL Server中按月获取新客户端

时间:2013-10-24 08:18:39

标签: sql-server sql-server-2005

我有一张表Clients

每个客户都有da_reg(在我们的系统中注册的日期)。我需要做一份报告:

按月 - 客户总数(count(distinct customernumber));和da_reg日期之前的新客户(我可以每月执行此操作,例如将过去一个月的所有客户端插入到临时表中,然后比较WHERE da_reg < 'date' and customerid not in (select customerid from #temp) - 但每次比较需要花费大量时间)。

如何让它最简单?在1-2步?

请帮忙!

提前致谢!

2 个答案:

答案 0 :(得分:1)

请试试这个

  select count(*) as new_count,
  month(da_reg) as month,year(da_reg) as year
  (select count(*) from tbl a where tbl.da_reg>=a.da_reg) as total_cus
  from tbl
  group by month(da_reg),year(da_reg)

答案 1 :(得分:0)

您可以逐月选择DAtE_TIME,然后计算一行数:8月的示例

SELECT *,count(a.id) 
FROM TABLE A as a
WHERE DATEPART(month, MY_DATETIME) = 8

其中a.id PK的A