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 に答える