让我们对每个学生说,我有一个考试记录,我需要计算每个问题,每组问题和总考试的百分位数 ...(每个学生)。
对于每个问题,问题组和总考试,我需要做的事情:
1)x =得分(我当然有)
2)得分高于x
的计数
3)得分等于x
的计数
4)计数总分
看起来我需要在T-SQL查询中使用子选择。计算大数据集中的所有内容并使用它。
有没有办法在SSRS内部实现?
答案 0 :(得分:0)
我发现有关SSRS中百分位函数的有趣帖子,我会试一试。
我必须创建另一个函数来返回排名,但主要想法是:
Public Shared Dim values As System.Collections.ArrayList
Public Shared Function AddValue(ByVal newValue As Decimal) As Decimal
If (values Is Nothing) Then
values = New System.Collections.ArrayList()
End If
values.Add(newValue)
AddValue = values.Count
End Function
Public Shared Function GetRankPercentile(ByVal CurrentValue As Decimal) As Decimal
Dim countTotal As Integer = values.Count 'nombre total de données
Dim countGreater As Integer = 0
Dim countEqual As Integer = 0
Dim iLoop As Integer
Dim tmpArray as system.array
tmpArray = values.ToArray()
For iLoop = LBound(tmpArray) To UBound(tmpArray)
If tmpArray(iLoop) CurrentValue Then countGreater = countGreater + 1
If tmpArray(iLoop) = CurrentValue Then countEqual = countEqual + 1
Next
GetRankPercentile = Math.Ceiling((countGreater + (countEqual / 2)) / countTotal * 5)
End Function