【问题标题】:Find the median of a calculated field in SSRS 2012在 SSRS 2012 中查找计算字段的中位数
【发布时间】:2014-03-14 20:28:36
【问题描述】:

我有一个开始日期和一个结束日期,并且正在计算两者之间的工作日:

  1. 我创建了一个名为 CountWeekDays 的计算字段,它等于: Code.getBusinessDaysCount(Fields!date_created.Value,Fields!date_closed.Value)

  2. 我可以得到这样的平均值:=Avg(Fields!CountWeekDays.Value)

但是,我无法以同样的方式获得中位数。我怎样才能得到计算出来的东西的中位数?

我用来获取工作日计数的代码如下:

Function getBusinessDaysCount(ByVal tFrom As Date, ByVal tTo As Date) As Integer
    Dim tCount As Integer
    Dim tProcessDate As Date = tFrom
    For x as Integer= 1 To DateDiff(DateInterval.Day, tFrom, tTo) + 1
      If Not (tProcessDate.DayOfWeek = DayOfWeek.Saturday Or tProcessDate.DayOfWeek = DayOfWeek.Sunday) Then
        tCount = tCount + 1
      End If
      tProcessDate = DateAdd(DateInterval.Day, 1, tProcessDate)
    Next
    Return tCount
End Function

【问题讨论】:

    标签: reporting-services median


    【解决方案1】:

    我找到了中位数的代码

    'MEDIAN code
    'code from http://stackoverflow.com/questions/1943437/mean-median-mode-in-sql-server-reporting-services
    
    Dim values As New System.Collections.Generic.List(Of Integer)
    Dim valueCounts As New System.Collections.Generic.Dictionary(Of Integer, Integer)
    
    Function AddValue(newValue As Integer) As Integer
    values.Add(newValue)
    AddValue = newValue
    If Not valueCounts.ContainsKey(newValue) Then
        valueCounts.item(newValue) = 1
    Else
        valueCounts.item(newValue) += 1
    End If
    End Function
    
    Function GetMedian() As Double
    Dim count As Integer = values.Count
    If count = 0 Then
        Return 0
    Else
        values.Sort()
        If count Mod 2 = 1 Then
            Return values(CInt((count / 2) - 0.5))
        Else
            Dim index1 As Integer = count \ 2
            Dim index2 As Integer = index1 - 1
    
            Dim value1, value2 As Integer
            value1 = values(index1)
            value2 = values(index2)
    
            Return (value1 + value2) / 2
        End If
    End If
    End Function
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-03
      相关资源
      最近更新 更多