【发布时间】:2017-07-13 15:43:36
【问题描述】:
我创建了一个按日期和时间列分组的 SSRS 报告。日期作为父组,时间作为子组。我还从我的选择语句中的某个列中提取了日期和时间,如下所示:-
CONVERT(VARCHAR(10),DetectionTime,103) AS Detection_Date,
CONVERT(TIME(0), DetectionTime) AS Detection_Time
我进一步创建了参数,并使用此链接http://mohamedakb.blogspot.com/2011/08/how-to-get-list-distinct-values-from.html 中的以下代码从给定字段中找到了唯一值,并按照上述步骤从给定参数中删除重复项:-
Public Shared Function RemoveDuplicates(parameter As Parameter) As String()
Dim items As Object() = parameter.Value
System.Array.Sort(items)
Dim k As Integer = 0
For i As Integer = 0 To items.Length - 1
If i > 0 AndAlso items(i).Equals(items(i - 1)) Then
Continue For
End If
items(k) = items(i)
k += 1
Next
Dim unique As [String]() = New [String](k - 1) {}
System.Array.Copy(items, 0, unique, 0, k)
Return unique
End Function
现在,当我尝试在日期列上应用过滤器时,它无法正常工作,就像没有显示输出一样。此外,我尝试使用除分组之外的其他列,过滤器值应用于这些列,但不适用于分组列。还有其他方法还是我遗漏了什么?
【问题讨论】:
-
你参数是否从数据集中绘制它的值?
-
@RossBush 是的,我有一个从数据集中提取值的虚拟参数和另一个使用上述代码过滤值的主要参数。
-
被过滤的日期列是否为了显示而重新格式化?如果这会将日期转换为文本值,则转换格式或转换日期值可能存在差异。如果
items(i).Equals(items(i - 1))比较的是非舍入时间,则您可以轻松地从数组中删除任何项目。那么,items() 的元素的数据类型是什么?项目中的时间是否四舍五入? -
@LaughingVergil 原始日期列也是一个文本值。我只是使用转换函数从这个文本值中分离出日期和时间,比如 2017-07-11 07:59:40:935。
-
您说没问题,但是,当您通过 CONVERT 函数运行 2017-07-11 时,返回的日期值是 11/07/2017,并且与您上面指出的格式不匹配。跨度>
标签: sql-server reporting-services ssrs-tablix