2016-12-15 32 views
1

我需要有TIME差异使用CASE然后当两个状态之间

    超过90天减
  1. 得到所有用户的个人资料得到共同的价值观:0
  2. 90多天:1
  3. 减大于90但大于84:2

现在我已经写了一个查询相同的是这样的:

SELECT COUNT(*) AS COUNT,FILTERED,TYPE,SEEN,CASE 
      WHEN DATEDIFF(NOW() , `TIME`) <= 90 AND DATEDIFF(NOW() , `TIME`) >= 84 THEN 2 
      WHEN DATEDIFF(NOW() , `TIME`) <=84 THEN 0 
      WHEN DATEDIFF(NOW() , `TIME`) >90 THEN 1 
      END AS TIME1 FROM newjs.CONTACTS WHERE SENDER='1' AND TYPE IN('A','D','I','E','C') AND RECEIVER NOT IN('5733000','7277453','9535153','9577787','9649101','99398691','99402429') GROUP BY FILTERED,TYPE,SEEN,TIME1 

上述代码的问题是TIME1 = 2中包含的计数不包括在TIME1 = 0的情况下。我知道我的代码是以这种方式编写的,但我如何才能达到理想的效果?

+0

问题是? –

+0

由于网络连接出现问题,无法完全写出问题。看一看。 – learner

+0

后采样输入和预期输出 – e4c5

回答