SQLServer2000を使用しています。次の式に基づいてネットプロモータースコアまたはNPSを計算しようとしています。
式:(Promoters - Detractors) / Total Questions
- スコア9〜10はプロモーターと見なされます。
- スコア0〜6は、中傷者と見なされます。
- スコア7〜8はニュートラルと見なされます。
私は次のデータを持っています:
Time Q1 Q2 Q3
----------- ------ ------ ------
2012-03-14 7 7 5
2012-03-15 3 2 5
2012-03-15 7 NA 2
2012-03-15 9 10 NULL
2012-03-15 8 4 4
2012-03-15 NA 6 4
2012-03-16 1 7 4
2012-03-16 NULL 0 5
2012-03-17 9 9 2
2012-03-19 0 0 1
2012-03-19 8 5 4
2012-03-19 1 0 3
データベースに最初にデータベースを書き込んだ人は、値をNVARCHAR形式でNULL
空白またはNAとして保存しました(神だけが理由を知っています..)ので、私が遊んでいるクエリはISNUMERICを使用し、空白またはNAの値をカウントしないようにしています。enter code here
正しく機能しない私のクエリは次のようになります。
SELECT CAST(SUM(CASE WHEN ISNUMERIC([Q1]) != 1 THEN 0
WHEN CAST([Q1] AS int) >= 9 THEN 1
WHEN CAST([Q1] AS int) <= 6 THEN -1
ELSE 0 END)
+ SUM(CASE WHEN ISNUMERIC([Q2]) != 1 THEN 0
WHEN CAST([Q2] AS int) >= 9 THEN 1
WHEN CAST([Q2] AS int) <= 6 THEN -1
ELSE 0 END)
+ SUM(CASE WHEN ISNUMERIC([Q3]) != 1 THEN 0
WHEN CAST([Q3] AS int) >= 9 THEN 1
WHEN CAST([Q3] AS int) <= 6 THEN -1
ELSE 0 END)
AS FLOAT)
/ (SUM(CASE WHEN ISNUMERIC([Q1]) != 1 THEN 0
ELSE 1 END)
+ SUM(CASE WHEN ISNUMERIC([Q2]) != 1 THEN 0
ELSE 1 END)
+ SUM(CASE WHEN ISNUMERIC([Q3]) != 1 THEN 0
ELSE 1 END)
) as [NPS]
FROM [nps]
誰かが私を正しい方向に向けることができますか?ありがとう!