在 Excel 中创建 MDX 度量以根据另一个维度对一个维度的成员进行计数
Creating an MDX measure in Excel to count members of one dimension based on another dimension
我正在尝试在 Excel(在 OLAP 工具中)中创建一个 MDX 度量,它将计算另一个维度中每个其他项目有多少成员。由于我不知道 MDX 和 OLAP 多维数据集的确切语法和符号,我将尝试简单地解释我想做什么:
我有一个基于 OLAP 多维数据集的枢轴 table。我有一个存储在一维中的机器编号字段,即 "parent" 并且对于每个机器编号,都有许多(在特定时间段内)生产的文章。这些物品由订单号表示。这些数字存储在另一个维度中。我想要计算每个机器号有多少订单号的措施。
所以 table 看起来像这样:
+------------------+----------------+
| [Machine Number] | [Order Number] |
+------------------+----------------+
| Machine001 | |
| | 111111111 |
| | 222222222 |
| | 333333333 |
| Machine002 | |
| | 444444444 |
| | 555555555 |
| | 666666666 |
| | 777777777 |
+------------------+----------------+
我希望结果是:
+------------------+----------------+------------+
| [Machine Number] | [Order Number] | [Measure1] |
+------------------+----------------+------------+
| Machine001 | | 3 |
| | 111111111 | |
| | 222222222 | |
| | 333333333 | |
| Machine002 | | 4 |
| | 444444444 | |
| | 555555555 | |
| | 666666666 | |
| | 777777777 | |
+------------------+----------------+------------+
我也试过将 COUNT 函数与 EXISTING 一起使用,但它不起作用(总是显示 1,或者每台机器都显示相同的错误数字)。我相信我必须以某种方式将这两个维度连接在一起,以便订单号取决于机器号,但由于缺乏有关 MDX 和 OLAP 多维数据集的知识,我什至不知道如何询问 Google 如何做到这一点。
在此先感谢您提供任何提示和解决方案。
你的问题基本上是,你有两个不同维度的属性。您想要检索这些属性的有效组合,您还想根据第一个属性的值计算第二个属性中可用的属性值的数量。
基于上述问题陈述,在 OLAP 多维数据集中,事实 table 或度量定义链接到 Measure\Fact-Table 的不同维度的属性之间的关系。看看下面的示例。(我使用了 SSAS 示例数据库 Adventureworks)
--我正在尝试查找为每个产品类别提供的促销活动。
select
[措施].[网络销售额]
在专栏上,
([产品]。[类别]。[类别],[促销]。[促销]。[促销])
在行
从
[冒险作品]
结果
结果是所有产品类别和促销的叉积。现在让立方体 return 仅成为有效组合。
select
[Measures].[Internet Sales Amount]
on columns,
nonempty(
([Product].[Category].[Category],[Promotion].[Promotion].[Promotion])
,[Measures].[Internet Sales Amount])
on rows
from
[Adventure Works]
结果
现在我们指出它需要 return 只有有效的组合。请注意,我们提供了属于连接两个维度的事实的度量。现在让我们数一数
with member
[Measures].[test]
as
count(
nonempty(([Product].[Category].currentmember,[Promotion].[Promotion].[Promotion]),[Measures].[Internet Sales Amount])
)
select
[Measures].[Test]
on columns,
[Product].[Category].[Category]
on rows
from
[Adventure Works]
结果
备用查询
with member
[Measures].[test]
as
{nonempty(([Product].[Category].currentmember,[Promotion].[Promotion].[Promotion]),[Measures].[Internet Sales Amount]) }.count
select
[Measures].[Test]
on columns,
[Product].[Category].[Category]
on rows
from
[Adventure Works]
我正在尝试在 Excel(在 OLAP 工具中)中创建一个 MDX 度量,它将计算另一个维度中每个其他项目有多少成员。由于我不知道 MDX 和 OLAP 多维数据集的确切语法和符号,我将尝试简单地解释我想做什么:
我有一个基于 OLAP 多维数据集的枢轴 table。我有一个存储在一维中的机器编号字段,即 "parent" 并且对于每个机器编号,都有许多(在特定时间段内)生产的文章。这些物品由订单号表示。这些数字存储在另一个维度中。我想要计算每个机器号有多少订单号的措施。
所以 table 看起来像这样:
+------------------+----------------+
| [Machine Number] | [Order Number] |
+------------------+----------------+
| Machine001 | |
| | 111111111 |
| | 222222222 |
| | 333333333 |
| Machine002 | |
| | 444444444 |
| | 555555555 |
| | 666666666 |
| | 777777777 |
+------------------+----------------+
我希望结果是:
+------------------+----------------+------------+
| [Machine Number] | [Order Number] | [Measure1] |
+------------------+----------------+------------+
| Machine001 | | 3 |
| | 111111111 | |
| | 222222222 | |
| | 333333333 | |
| Machine002 | | 4 |
| | 444444444 | |
| | 555555555 | |
| | 666666666 | |
| | 777777777 | |
+------------------+----------------+------------+
我也试过将 COUNT 函数与 EXISTING 一起使用,但它不起作用(总是显示 1,或者每台机器都显示相同的错误数字)。我相信我必须以某种方式将这两个维度连接在一起,以便订单号取决于机器号,但由于缺乏有关 MDX 和 OLAP 多维数据集的知识,我什至不知道如何询问 Google 如何做到这一点。 在此先感谢您提供任何提示和解决方案。
你的问题基本上是,你有两个不同维度的属性。您想要检索这些属性的有效组合,您还想根据第一个属性的值计算第二个属性中可用的属性值的数量。
基于上述问题陈述,在 OLAP 多维数据集中,事实 table 或度量定义链接到 Measure\Fact-Table 的不同维度的属性之间的关系。看看下面的示例。(我使用了 SSAS 示例数据库 Adventureworks)
--我正在尝试查找为每个产品类别提供的促销活动。 select [措施].[网络销售额] 在专栏上, ([产品]。[类别]。[类别],[促销]。[促销]。[促销]) 在行 从 [冒险作品]
结果
select
[Measures].[Internet Sales Amount]
on columns,
nonempty(
([Product].[Category].[Category],[Promotion].[Promotion].[Promotion])
,[Measures].[Internet Sales Amount])
on rows
from
[Adventure Works]
结果
现在我们指出它需要 return 只有有效的组合。请注意,我们提供了属于连接两个维度的事实的度量。现在让我们数一数
with member
[Measures].[test]
as
count(
nonempty(([Product].[Category].currentmember,[Promotion].[Promotion].[Promotion]),[Measures].[Internet Sales Amount])
)
select
[Measures].[Test]
on columns,
[Product].[Category].[Category]
on rows
from
[Adventure Works]
结果
备用查询
with member
[Measures].[test]
as
{nonempty(([Product].[Category].currentmember,[Promotion].[Promotion].[Promotion]),[Measures].[Internet Sales Amount]) }.count
select
[Measures].[Test]
on columns,
[Product].[Category].[Category]
on rows
from
[Adventure Works]