【发布时间】:2019-03-15 23:34:49
【问题描述】:
我正在创建一个不寻常的 SSRS 报告,该报告要求用户能够使用参数来选择报告中出现的(超过 250 个)字段中的哪一个。因此,此报告中的列数可能会有很大差异。
我在实现这一点方面取得了很大的成功,但我一直在控制如何更改列的顺序。
这是我原始数据的(简化示例): My data as a screen capture
公司ID |地址 |网站_URL |创建日期 |修改日期 |
1 |主街 123 号|www.fake.com | 2019 年 3 月 14 日 | 2019 年 3 月 15 日 |
2 |公园大道 555 号 |www.notreal.com|2019 年 3 月 12 日 | 2019 年 3 月 13 日 |
我做的第一件事是在我的数据集中取消透视我的数据(我使用交叉应用来执行此操作)。该列的名称保存在名为“Col_1”的列中,值保存在名为“Val_1”的列中。诀窍是,我必须多次执行此操作,对我正在处理的每种数据类型执行一次。因为显然你不能在同一列中有日期和 nvarchars。当我取消透视上面的数据时,它看起来像这样:
公司ID | Col_1 | Val_1 | Col_2 | Val_2 |
1 |地址|大街123号|创建日期 | 2019 年 3 月 14 日 |
1 |Website_URL |www.fake.com |修改日期 | 2019 年 3 月 15 日 |
2 |地址 |555 Park Ave |创建日期 |2019 年 3 月 12 日 |
2 |Website_URL |www.notreal.com |修改日期 |3/13/2019 |
这样做的重点是现在我可以创建一个矩阵,即 SSRS 报告,其中 CompanyID 作为行组。然后我为 Col_1 和 Col_2 创建两个相邻的列组,它们的值分别为 Val_1 和 Val_2。 Click here to see SSRS Groupings
现在,当此报告运行时,每个列组(例如 Col_1)都会展开以显示我在未透视数据中该列下的所有列名。这可能是几十列。这张图片显示了我的最终数据的样子。这类似于我的原始数据。但得益于动态显示列这一事实。
所以,我遇到的唯一问题是列被卡在在他们的组中。假设我想按字母顺序对它们进行排序,我只能将 nvarchars 和日期一起排序。我无法跨他们的组进行排序。有什么办法可以做到吗?
The resulting Matrix I want, with columns sorted alphabetically
提前感谢您的任何想法。
【问题讨论】: