在计算属性时获取计数

时间:2014-07-31 21:10:48

标签: sql sql-server

我有两个表,一个用于帐户信息,另一个用于客户信息。一个帐户可以有多个与之关联的客户。我想要做的是抓住一个月内所有活跃的客户。但是,我还想说明在前几个月活跃并购买的客户。

Account
ID  IND_ID  LAST_PURCHASE  
1   101       2013-01-15
2   102       2013-03-20
2   103       2013-02-05
3   104       2013-07-25
4   105       2012-01-11

Customer
ID   STATUS  
101   A
102   A
103   A
104   E
105   A

选择只有活跃客户不是问题,因为我只能过滤该列。但是,在考虑过去两个月购买的人员时,如何选择活跃“客户”的数量。

1 个答案:

答案 0 :(得分:2)

您可以通过查看最长购买日期并对其进行过滤来执行此操作:

select c.id
from customer c join
     account a
     on c.id = a.ind_id
where c.status = 'A'
group by c.id
having max(last_purchase) >= date_add(month, -2, getdate());