0

顧客 (ヘルス クラブ) の SQL Server (2000) データベースがあります。

顧客は毎年加入しています。そこでメンバーシップを更新する顧客の割合を計算できるようにしたいと考えています (時間の経過と過去の現在の年)。Active Status フィールドは、メンバーがまだメンバーであるかどうかを示します。
JoinDate は変更されません。メンバーが更新する場合、ActiveDate と DueDate (顧客が更新する予定の場合) があり、DueDate は Active Date より 1 年進んでいます。私がやろうとしているのは、更新する顧客のパーセンテージを、可能であれば過去数年または全体で分類して、ある程度の感覚を得ようとすることです. 何か案は。ありがとう。顧客テーブルのフィールドには、次のものが含まれます。

    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
4

2 に答える 2

0

OK、ActiveDate が Join_Date より後であれば、顧客がメンバーシップを更新していることがわかります。メンバーシップを更新する顧客の割合を取得するには、以下を取得する必要があります。

ActiveDate > JOIN_Date の顧客数 (メンバーシップを更新した顧客)

メンバーシップを更新する顧客の数に 100 を掛けます

この結果をすべての顧客の合計数で割ります

select 
(select COUNT(*)  from Customer where ActiveDate > JOIN_Date) * 100 / COUNT(*)
from Customer
于 2012-10-28T18:08:30.947 に答える
0

このように、顧客ごとの更新数を計算できます。

select
    *,
    datediff(yyyy, joindate, 
         case activestatus when 'yes' then  getdate() else CancelDate end
    )
from yourtable
于 2012-10-28T18:36:26.083 に答える