0

计算区间之间的数据,区间取决于记录的年龄

我有一个名为的表complaint,其中有很多列ComplaintDate,我想显示记录数取决于间隔

以下间隔将用于分类记录:

  1. 10 天前的投诉数量。
  2. 10-20 天前的投诉数量。
  3. 20-30 天前的投诉数量。
  4. 超过 30 天的投诉数量。

我尝试过这样的事情

select SUM(CASE WHEN ComplaintDate BETWEEN DATEADD (dd,-10,getdate())AND   GETDATE()  THEN 1 ELSE 0 END) As '0-10',
       SUM(CASE WHEN ComplaintDate BETWEEN  DATEADD (dd,-20,getdate()) AND DATEADD (dd,-10,getdate()) THEN 1 ELSE 0 END) AS '10-20',
       SUM(CASE WHEN ComplaintDate BETWEEN DATEADD (dd,-30,getdate()) AND DATEADD (dd,-20,getdate()) THEN 1 ELSE 0 END) AS '20-30'       
 FROM Complaint 

我也希望包含在 0-10 天间隔内的那一天不应计入 10-20 或 20-30 天间隔内,同样适用于其他其他间隔。

4

1 回答 1

0
select 
SUM(CASE WHEN ComplaintDate > DATEADD (dd,-10,getdate()) AND   ComplaintDate <= GETDATE()  THEN 1 ELSE 0 END) As '0-10',

SUM(CASE WHEN ComplaintDate > DATEADD (dd,-20,getdate()) AND ComplaintDate<=DATEADD (dd,-10,getdate()) THEN 1 ELSE 0 END) AS '10-20',

SUM(CASE WHEN ComplaintDate > DATEADD (dd,-30,getdate()) AND ComplaintDate <=DATEADD (dd,-20,getdate()) THEN 1 ELSE 0 END) AS '20-30'    

FROM Complaint 
于 2012-10-17T07:52:17.043 回答