25

我正在编写一个 SQL Reporting Services 报告(在 VS.Net 2005 中),它在矩阵中显示不同数据的计数。这些列对特定集合中的客户数量进行计数。所以我有几个这样的列:“1 个雇主”、“2-9 个雇主”、“10-19 个雇主”等等。

我遇到的问题是 SQL Reporting Services 按字母顺序对矩阵中的列进行排序。所以我最终在“1 个雇主”列之后但在“2-9”之前有一个“10-19”列。

有没有什么办法解决这一问题?或者可能是一种将列标签更改为正确排序的技巧?

谢谢。

4

8 回答 8

25

这也可以通过将新列添加到排序顺序的查询中来完成。然后右键单击矩阵中的列组并选择组属性。在左侧选择排序。从这里您可以指定另一列作为排序依据,而不是列标题。无需自定义公式。

于 2014-04-16T19:27:05.033 回答
21

我们做了很多 SSRS 报告,这一直是 mdx 的问题。这是我们这样做的一种方法:

Grouping and Sorting Properties中设置Sorting以按此表达式排序:

=iif(Fields!DataSetField.Value = "ColumnName", "zzz", Fields!DataSetField.Value)

其中“zzz”可以是一个数字或任何您需要的帮助排序,然后根据此表达式选择方向作为升序或降序。

于 2009-03-23T15:49:52.790 回答
4

这可能有点令人费解,但我们遇到了类似的问题,无法更改 SQL。我们所做的是在数据集中创建一个计算字段,该字段为每列返回一个数字,并根据该数字对组进行排序。

于 2009-01-28T10:51:00.400 回答
1

我遇到了类似的问题,但没有及时找到使用矩阵的解决方案——所以我使用了一个表——并将所需的矩阵逻辑放在我的 SQL 语句中。这不是最好的事情,但它确实有效 - 它足够快,并且不需要那么长时间来编写。

于 2009-01-26T13:40:56.203 回答
0

我进入了 MATRIX --> PROPERTIES --> GROUPS。然后,我“移动”了我希望它在列表中按 UP 排序的 GROUP。我去了预览版,效果很好。它甚至使我的列顺序保持不变。

于 2009-08-04T00:05:46.807 回答
0

转到编辑组 - 排序 - 将表达式的方向更改为降序。

于 2011-07-27T15:10:31.763 回答
0

对于 Tablix 的不同数字顺序,请在表达式中使用以下代码行。

=RunningValue(CountDistinct("YourTableName"),Count,"YourTableName")

于 2016-06-08T10:27:52.380 回答
0

只需转到 tablix/Matrix 列组并右键单击组属性,然后转到排序并从排序中删除自动添加的记录。现在您的排序将基于您在数据集中添加的数据。

于 2021-05-19T12:01:55.153 回答