我有一个与客户(健康俱乐部)的SQL Server(2000)数据库。
客户每年加入。我希望能够计算续订会员资格的客户百分比(随着时间的推移和过去的当前年度)。 “活动状态”字段指示它们是否仍然是成员 JoinDate不会改变。当一个成员更新时,有一个ActiveDate,还有一个 DueDate(当客户即将续订时),DueDate比活动日期提前1年。我想要做的是尝试了解更新客户的百分比百分比,如果可能或整体分解过去几年。有任何想法吗。谢谢。 customer表中的字段包含:
CustomerID JOIN Date Cancel Date ActiveStatus ActiveDate DueDate
12345 10/01/2011 NULL Yes 10/01/2012 10/01/2013
12346 1/1/2010 12/31/2011 No 1/1/2010 1/1/2011
答案 0 :(得分:0)
好的,如果ActiveDate在Join_Date之后,我们知道客户续订会员资格。 为了获得我们需要更新网络的客户百分比:
拥有ActiveDate>的客户数量JOIN_Date(续订会员资格的客户)
续订会员的客户数量乘以100
此结果除以所有客户的总数
select
(select COUNT(*) from Customer where ActiveDate > JOIN_Date) * 100 / COUNT(*)
from Customer
答案 1 :(得分:0)
您可以像这样计算每位客户的续订数量。
select
*,
datediff(yyyy, joindate,
case activestatus when 'yes' then getdate() else CancelDate end
)
from yourtable