Reporting services 带有列组的SSRS报告非常庞大,大部分为空
我找不到办法让这份报告做我想做的事。我的数据如下表所示:Reporting services 带有列组的SSRS报告非常庞大,大部分为空,reporting-services,ssrs-grouping,Reporting Services,Ssrs Grouping,我找不到办法让这份报告做我想做的事。我的数据如下表所示: varchar ClientName Datetime CallDate varchar CallReason 我试图以以下方式显示它(“|”表示报告中的一列): 我现在看到的是一样的,只是数据库中的每一行都会在报表中变成不同的一行,这会创建一个充满空单元格的巨大报表。我通过一个简单的查询select*从CallDate>somefilter的表格中获取数据 因此,我的实际问题是:如何对数据进行分组,以使列组具有不与其他列的详细信息
varchar ClientName
Datetime CallDate
varchar CallReason
我试图以以下方式显示它(“|”表示报告中的一列):
我现在看到的是一样的,只是数据库中的每一行都会在报表中变成不同的一行,这会创建一个充满空单元格的巨大报表。我通过一个简单的查询select*从CallDate>somefilter的表格中获取数据
因此,我的实际问题是:如何对数据进行分组,以使列组具有不与其他列的详细信息分组的详细信息部分
我想要这样的东西:(注意:这是随机复制粘贴的数据,实际数据确实有重复的日期,但没有文本)
我现在有这样一个报告(该报告更进一步):
这就是我所做的,我想这就是你所需要的
样本数据
create table soRep1
(
ClientName varchar(30)
,CallDate datetime
,CallReason varchar(100)
)
insert into soRep1(ClientName, CallDate, CallReason)
values ('Client 1', '2014-08-01', 'some reason 1')
, ('Client 1', '2014-08-02', 'some reason 2')
, ('Client 1', '2014-08-03', 'some reason 3')
, ('Client 2', '2014-08-02', 'Client 2 some reason 1')
, ('Client 2', '2014-08-04', 'Client 2 some reason 2')
, ('Client 3', '2014-08-01', 'Client 3 some reason 1')
, ('Client 3', '2014-08-03', 'Client 3 some reason 2')
添加了数据集以检索数据,但包括基于客户端和日期的行号
在下图中,查询是
select ROW_NUMBER() OVER (Partition by ClientName Order by CallDate) as RowNum
, ClientName, CallDate, CallReason
from soRep1;
添加要显示的矩阵对象,并在RowNum列上添加行组,在客户端名称上添加列组
我必须将日期列的格式设置为仅显示日期。格式属性=MM dd yyyy
结果是
我可能不太清楚你的问题。如果在显示之前使用SQL查询返回已存在的数据组,该方法是否有效。研究SQL分组。例如<代码>从CallDate>SomeFilter表中选择ClientName、CallDate、CallReason、count(*)作为totalcount,按ClientName、CallDate、CallReason分组,或者您可以使用distinct获取不带计数的不同信息从CallDate>SomeFilter表中选择ClientName、CallDate、CallReason。让我知道如果我是出路,因为我不清楚的问题,没有必要组或使用不同的。查看添加的图片。它工作得非常好。根据每个客户机的行数进行分组是一个非常明智的想法。非常感谢。
select ROW_NUMBER() OVER (Partition by ClientName Order by CallDate) as RowNum
, ClientName, CallDate, CallReason
from soRep1;