我正在使用 SQL Server 2000。我正在尝试根据以下公式计算净推荐值或 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
最初编写数据库的人将值存储为NVARCHARNULL
格式的空白或 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]
有人可以指出我正确的方向吗?谢谢!