在SSRS矩阵中对字符串数字进行排序

时间:2018-07-12 19:57:05

标签: sorting matrix reporting-services ssrs-2012

我的矩阵表中有一列是包含数字值(stepName)的varchar。在报告中,它打印为1,10,11 ... 2,20,21,22 ...等,而不是1,2 .. 10,20

我发现了另一个问题,建议将varchar值转换为int然后进行排序,或者添加一个数据类型数字列并使用该列进行排序。 (sorting string numeric values in SSRS 2008

我无法将varchar值转换为int,因为我有大约50/50 varchar /数字值。我实际上有一个数字序列列,但是当我尝试在查询,列tablix属性和列表tablix属性中都使用它作为排序时,它仍然没有排序。我想念什么?谢谢!

select hrss.salaryScheduleCode, hrss.salaryScheduleName, st.stepName, st.seq, sl.laneName
from dbo.HRSalarySchedule hrss
left join dbo.HRSalaryScheduleStep st on st.hrSalaryScheduleID = hrss.hrSalaryScheduleID
left join dbo.HRSalaryScheduleLane sl on sl.hrSalaryScheduleID = hrss.hrSalaryScheduleID
order by hrss.salaryScheduleCode, st.seq, sl.seq

enter image description here

1 个答案:

答案 0 :(得分:1)

更改tablix的排序以使用表达式:

=CInt(Fields!stepName.Value)

编辑:

好吧,我用varchar /数字值误解了50/50,所以这是一个更好的解决方案。

Val函数计算一个前导数值,因此我建议创建2个排序列:

  1. 表达式=Val(Fields!stepName.Value)
  2. 字段stepName

例如,这将创建如下排序顺序:

Sorted Example

下面是一个屏幕截图,用于说明要配置的内容:

enter image description here