如何在SSAS Multi-Dimensional中显示实际上没有值的维度成员?

问题描述 投票:3回答:2

我的票务管理应用程序中有两个表,“ExpositionPeriods”和“OrganisedVisits”。

ExpositionPeriods - 定义可以购买门票的期间。

OrganisedVisits - 存储购买的门票信息。

在下面的示例中,我们有5个可用期间,并且已为其中2个期间购买了故障单。

enter image description here

客户需要一份报告,其中显示“每个可用时段的访客数量”。这意味着,对于没有访问者的任何时期,报告应该在该期间显示“0”。像这样的东西。

enter image description here

到现在为止还挺好。由于生产数据库很大(约500 GB),因此不建议直接报告此数据库。当我从这个模式中创建OLAP多维数据集并尝试在多维数据集中实现相同的报表功能时,事情变得具有挑战性。看起来立方体实际上执行类似于SQL INNER JOIN的操作而不是LEFT OUTER JOIN,因此我没有看到没有售票的那些Period。

enter image description here

这是SSAS的实际行为吗?我是否错过了任何特定的设置,表明SSAS引擎以不同的方式处理多维数据集,以便包括丢失的时段?请注意,最终客户无权访问MDX / DAX脚本,他们只能通过拖放测量和Excel透视表中的维度来使用多维数据集。

sql ssas olap
2个回答
1
投票

在您的图像中,浏览器在日期维度上的行上执行非空。如果要显示没有访问者的日期,请选择显示空单元格的选项。


0
投票

您可以在“计算”中将此范围定义为

SCOPE 
([Measures].[Visitors]);
THIS=IIF(ISEMPTY([Measures].[Visitors]),0,[Measures].[Visitors]);
END SCOPE;

所以你有零而不是空和副作用。您或客户无法隐藏空单元格,因为现在它不够空。

© www.soinside.com 2019 - 2024. All rights reserved.