我正在使用 Visual Studios BIDS 来修改现有的 OLAP 多维数据集。
在SSMS
:有一个基础事实表 (FactTableMain),其粒度非常细,其中包含 10 种不同的措施来跟踪应用程序的状态(它们几乎就像一个标志)。这些度量要么具有个人的 ID 值,要么是NULL
.
在SSAS
Visual Studio中OLAP
:
- 有 10 个测量组。每个度量值组都基于一个 DSV 命名查询,该查询选择 1 个 FactTableMain 度量值,其中 MeasureName
IS NOT NULL
。 - 每个度量值组的钻取操作,仅返回 PersonName 和 PersonID 列。
每个度量值组的练习:
- 显示重复项(因为并非所有事实表列都是演习的返回列)
- 不返回度量计数显示的预期行数
我试过了:
- 在钻取操作中使用 filter 和 distinct 的多个
MDX
条件,但它们要么没有区别,要么操作完全消失 - 创建一个垃圾钻取维度,从 FactTableMain 中选择不同的 ID,并将其设置为钻取操作的唯一返回列(钻取返回行没有区别)
MDX
使用动作表达式将新(标准)动作创建为行集和数据集
我想我需要一个MDX
带有以下属性的动作表达式的新(标准)动作:
- 目标类型 = 细胞
- 目标对象 = 所有单元格
- 操作内容类型 = 行集
我当前的 MDX 查询确实返回了结果,但仅针对第一个度量的总体总数,而且它的格式根本不正确。如果我在客户端应用程序中选择不同的度量,重新运行查询并再次钻取,它将不起作用。我找了又找,但我没有想法,坐在一个厄运的黑坑里。:(
我目前的MDX
查询是:
WITH
SET [person] AS
NonEmpty([person].[person].[person])
MEMBER CurrentMeasure AS
[Measures].CurrentMember
SELECT
NonEmpty
(
Filter
(
[Quarter].[Quarter].[Quarter].MEMBERS
,[Quarter].[Quarter].CurrentMember
)
) ON COLUMNS
,(
[person]
,NonEmpty([person].[person ID].[ID])
) ON ROWS
FROM [Applications];
目标:我最终希望钻取动作足够动态,以了解用户正在选择的当前度量,并通过用户对行/列的维度选择进行过滤。
问题:
- 有没有办法使用原始钻取操作的条件来过滤不同的或非空的行?我知道有演习限制,但是有什么可以解决演习限制的方法吗?
- 如何创建一个针对用户选择(我的目标)动态的标准行集操作。
- 有任何想法吗?
URL 操作类型不能满足我们的业务需求。
编辑:我从 DSV 中删除了所有不必要的内容,并且只选择了不同的行。每个 ID 可以有超过 1 个应用程序,一个应用程序可以有超过 1 个感兴趣的区域。现在,演习返回每个 ID、应用程序和感兴趣区域的 1 行。我们只希望演习返回不同的 ID,无论应用程序的数量或感兴趣的领域如何。我不知道从这里去哪里。我可以在演练中过滤我们的应用程序编号和/或感兴趣的领域维度吗?