Sorting SSRS矩阵中字符串数字的排序
我的矩阵表中有一列,它是一个包含数值stepName的varchar。在报告中,它打印为1,10,11。。。2,20,21,22... etc而不是1,2。。10, 20. 我发现了另一个问题,建议要么将varchar值转换为int,然后进行排序,要么添加一个datatype numeric列并使用它进行排序 我无法将varchar值转换为int,因为我有大约50/50个varchar/数值。我实际上有一个数字序列列,但当我试图在查询、列tablix属性和列表tablix属性中使用它作为排序时,它仍然没有排序。我错过了什么?谢谢大家!Sorting SSRS矩阵中字符串数字的排序,sorting,matrix,reporting-services,ssrs-2012,Sorting,Matrix,Reporting Services,Ssrs 2012,我的矩阵表中有一列,它是一个包含数值stepName的varchar。在报告中,它打印为1,10,11。。。2,20,21,22... etc而不是1,2。。10, 20. 我发现了另一个问题,建议要么将varchar值转换为int,然后进行排序,要么添加一个datatype numeric列并使用它进行排序 我无法将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
更改tablix的排序以使用表达式:
=CInt(Fields!stepName.Value)
编辑:
好吧,我误解了varchar/数值的50/50,所以这里有一个更好的解决方案
Val函数计算前导数值,因此我建议创建两个排序列:
表达式=ValFields!stepName.Value
字段步骤名
例如,这将创建如下排序顺序:
下面是一个屏幕截图,用于说明要配置什么:
你能编辑你的文章来展示你的数据样本和你的整个报告设计吗。还应说明设置排序的位置,如果可能,还应说明当前获得的输出的屏幕截图。这可能真的很容易修复,但如果没有更多的信息,猜测工作就太多了。我认为你的列表应该按salaryScheduleName排序,因为这似乎是分组的依据。您的排序应该在stepName行组中,因为它来自Step表。