0

假设我有一个“主”数据集,用于生成大量表,所有表都有自己的附加过滤和分组应用。“主”数据集包含大约 30 列,其中之一是“SL”,下表利用此列并计算“主”数据集中的记录数以生成按日期分组的总数。

在此处输入图像描述

我的问题是,假设还有另外两个“SL”,它们是“A”和“未指定”类型,无论“主”数据集是否包含在该类型下标记的记录,以及总计三个日期自然为零。

我可以通过简单地生成一个列出所有类型的附加数据集:

select distinct type_sl
from [mytable]

但是我无法将其拖放到现有表中,因为它是不同数据集的一部分,我也看不到如何更改现有数据集以包含这些类型的行,因为其余数据将为 NULL,或者这是这样做的方法吗?

4

1 回答 1

1

您的建议没有问题,即调整您的数据集以始终包含这些 SL 值,即使其他一切都是NULL.

即假设数据集是从 T-SQL 查询生成的,[mytable]用作基表并根据需要 LEFT JOIN 返回到此。

如果需要,您可以IsNothing在报表表达式中使用0NULL替换值。

另一种方法是对所有必需的 SL 值使用具有设定行数的表,而不是依赖于由 tablix 类型对象动态生成的必需列,然后用适当的条件表达式填充列的值,例如B列使用类似:

=Sum(IIf(Fields!type_sl.Value = "B", Fields!MyValue.Value, Nothing)

但是,我倾向于第一个选项 - 主要优点是您仍然可以维护现有结构,即动态分组以根据需要增加行数,并且您只需更改底层数据库代码即可拥有更改应用于使用该数据库代码的所有项目。

于 2013-11-04T16:12:56.357 回答