Sql server 使用行组在SSRS Tablix中显示零记录的表

Sql server 使用行组在SSRS Tablix中显示零记录的表,sql-server,reporting-services,ssrs-tablix,Sql Server,Reporting Services,Ssrs Tablix,我有一个Tablix,数据集绑定到Tablix。数据集中的一列用作“行组”,并且设计了一个子表以在单独的表中显示每个行组的结果 在运行报告时,它显示正确,但注意到的一个问题是,如果我们选择一个SELECT语句,其中q where条件为 WHERE RowGroupID IN(xx,yy,zz) group by RowGroupID 结果集只包含xx和yy的值,而不包含zz的记录。 因此,在呈现报告时,将在报告中为xx和yy创建2个子表,但没有RowGroupId zz的表或信息 我应该

我有一个Tablix,数据集绑定到Tablix。数据集中的一列用作“行组”,并且设计了一个子表以在单独的表中显示每个行组的结果

在运行报告时,它显示正确,但注意到的一个问题是,如果我们选择一个SELECT语句,其中q where条件为

  WHERE RowGroupID IN(xx,yy,zz)  group by RowGroupID
结果集只包含xx和yy的值,而不包含zz的记录。 因此,在呈现报告时,将在报告中为xx和yy创建2个子表,但没有RowGroupId zz的表或信息


我应该设置哪些设置或属性来显示包含行组的Tablix中包含0条记录的RowGroupID。没有设置/属性可以使它显示不存在的Tablix行。结果集包含2行而不是3行,因此显示2行

您应该更改查询,使其返回所有3行的结果集

您可以将当前结果集左键连接到包含xx、yy和zz的3个固定行

这是我的例子

我有一个自然数表
dbo.Nums
,其中没有负数,但假设我想在结果集中包含一行-1

如果我只是这样筛选我的表:
其中nums.n在(-1,2,3)
我将错过
-1
的行

为了修复我离开的问题,将来自
dbo.Nums
的结果与包含
-1
2
3
的固定行连接起来,因此我的
where
条件变为
on
条件,如下所示:

with cte as
(
select *
from (values (-1), (2), (3))v(n)
)
select *
from cte c
     left join dbo.nums nums
        on c.n = nums.n
           and nums.n in (-1,2,3);