T-SQL计算百分比

时间:2012-10-28 17:21:05

标签: tsql sql-server-2000

我有一个与客户(健康俱乐部)的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

2 个答案:

答案 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