带动态列的 SSRS 数据透视表
SSRS Pivot with Dynamic Columns
我的查询如下 Table...,
Create Table t_raw
(
Month nvarchar(255),
Name nvarchar(255),
Clear nvarchar(255),
Contact nvarchar(255),
Viewed nvarchar(255),
Clicks float
)
Insert Into t_raw values('Jan-18','ABC','DTC','dtc@mz.com','GM','2'),
('Feb-18','QSC','FMM','fmm@mp.com','AM','6'),
('Mar-18','ABC','DTC','lta@mz.com','OPS','9'),
('Jan-18','MHY','GNMA','gnma@sr.com','REP','3'),
('Feb-18','VRL','XLR','xlr@vn.com','TUC','5'),
('Mar-18','MHY','GNMA','gnma@sr.com','XEM','7'),
('Jan-18','ABC','DTC','mat@sd.com','SUD','2'),
('Feb-18','MHY','GNMA','mio@fr.com','AFT','4'),
('Mar-18','TOC','ADF','fin@yu.com','BPL','2')
下面是table:
我期待如下所示的输出。
谁能帮我实现这个期望的输出?
创建一个空白报表并创建一个数据源和一个数据集以连接到数据。将矩阵添加到报告中。将名称字段从 "Report Data" window 中的数据集拖动到矩阵的第一个 "Rows" 字段,并使用字段 select 或在 select 月份字段中列 header 字段。 Select 月份 header 下数据单元格中的点击次数字段,这应该会自动生成总和。在月列组的属性 window 中,将排序顺序更改为类似
的表达式
=CDate(Fields!Month.Value)
将名称字段的宽度更改为足以包含名称、清除、联系人和已查看四列(我选择了 12 厘米)。
- 现在,right-click 命名 header 单元格并通过上下文菜单插入 table。不要担心高度并在 table.
中添加一个额外的列
- 在名称数据单元格中执行相同操作
设计现在应该如下所示:
在月份字段旁边的 table 中(我将其称为 "header table"),删除数据行(以及相关组,当被询问时):
然后在 Sum(Clicks) 字段旁边的 table 中(我将其称为 "data table"),依次删除 header 行:
这些步骤解决了高度问题。
在 "header table" 中,输入列名称并根据需要设置格式。在"data table"、select对应的字段中显示。在"data table" 的Row Group "Details1" 的属性中。以正确的顺序添加所有 4 个字段以进行分组和排序。
对于 "data table" 中的前 3 个字段,使用属性 sheet 将 HideDuplicates 属性 设置为数据集的名称。
对于 Sum(Clicks) TextBox,将 TextAlign 设置为 "Center",将 VerticalAlign 设置为 "Middle"。
哦对了,给外矩阵的Name组加总,按要求对齐。
瞧:
已添加:
要合并 Name、Clear 和 Contact 的单元格,请执行以下操作:
- 在 "data table" 的行组 "Details1" 的属性中,删除 Name、Clear 和 Contact 在 Grouping 和 Sorting 属性下,所以只剩下 Viewed。将群组重命名为 Viewed.
- 删除 "data table" 的前三列(姓名、清除 和 联系人).
- Right-clicking 始终是 "data table" 的最顶行组,成功为 Contact、Clear 添加 parent 组 和 姓名.
我的查询如下 Table...,
Create Table t_raw
(
Month nvarchar(255),
Name nvarchar(255),
Clear nvarchar(255),
Contact nvarchar(255),
Viewed nvarchar(255),
Clicks float
)
Insert Into t_raw values('Jan-18','ABC','DTC','dtc@mz.com','GM','2'),
('Feb-18','QSC','FMM','fmm@mp.com','AM','6'),
('Mar-18','ABC','DTC','lta@mz.com','OPS','9'),
('Jan-18','MHY','GNMA','gnma@sr.com','REP','3'),
('Feb-18','VRL','XLR','xlr@vn.com','TUC','5'),
('Mar-18','MHY','GNMA','gnma@sr.com','XEM','7'),
('Jan-18','ABC','DTC','mat@sd.com','SUD','2'),
('Feb-18','MHY','GNMA','mio@fr.com','AFT','4'),
('Mar-18','TOC','ADF','fin@yu.com','BPL','2')
下面是table:
我期待如下所示的输出。
谁能帮我实现这个期望的输出?
创建一个空白报表并创建一个数据源和一个数据集以连接到数据。将矩阵添加到报告中。将名称字段从 "Report Data" window 中的数据集拖动到矩阵的第一个 "Rows" 字段,并使用字段 select 或在 select 月份字段中列 header 字段。 Select 月份 header 下数据单元格中的点击次数字段,这应该会自动生成总和。在月列组的属性 window 中,将排序顺序更改为类似
的表达式=CDate(Fields!Month.Value)
将名称字段的宽度更改为足以包含名称、清除、联系人和已查看四列(我选择了 12 厘米)。
- 现在,right-click 命名 header 单元格并通过上下文菜单插入 table。不要担心高度并在 table. 中添加一个额外的列
- 在名称数据单元格中执行相同操作
设计现在应该如下所示:
在月份字段旁边的 table 中(我将其称为 "header table"),删除数据行(以及相关组,当被询问时):
然后在 Sum(Clicks) 字段旁边的 table 中(我将其称为 "data table"),依次删除 header 行:
这些步骤解决了高度问题。
在 "header table" 中,输入列名称并根据需要设置格式。在"data table"、select对应的字段中显示。在"data table" 的Row Group "Details1" 的属性中。以正确的顺序添加所有 4 个字段以进行分组和排序。
对于 "data table" 中的前 3 个字段,使用属性 sheet 将 HideDuplicates 属性 设置为数据集的名称。
对于 Sum(Clicks) TextBox,将 TextAlign 设置为 "Center",将 VerticalAlign 设置为 "Middle"。
哦对了,给外矩阵的Name组加总,按要求对齐。
瞧:
已添加:
要合并 Name、Clear 和 Contact 的单元格,请执行以下操作:
- 在 "data table" 的行组 "Details1" 的属性中,删除 Name、Clear 和 Contact 在 Grouping 和 Sorting 属性下,所以只剩下 Viewed。将群组重命名为 Viewed.
- 删除 "data table" 的前三列(姓名、清除 和 联系人).
- Right-clicking 始终是 "data table" 的最顶行组,成功为 Contact、Clear 添加 parent 组 和 姓名.