SSRS表达式 - 从数据集中查询,使用组

时间:2014-08-27 14:13:03

标签: sql reporting-services dataset

让我们对每个学生说,我有一个考试记录,我需要计算每个问题,每组问题和总考试的百分位数 ...(每个学生)。

对于每个问题,问题组和总考试,我需要做的事情:
1)x =得分(我当然有)
2)得分高于x
的计数 3)得分等于x
的计数 4)计数总分

看起来我需要在T-SQL查询中使用子选择。计算大数据集中的所有内容并使用它。

有没有办法在SSRS内部实现

1 个答案:

答案 0 :(得分:0)

我发现有关SSRS中百分位函数的有趣帖子,我会试一试。

https://www.katieandemil.com/ssrs-percentile-function-2008-r2-calculation-custom-code-example?tab=article

我必须创建另一个函数来返回排名,但主要想法是:

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