MDX - 需要 3rd + 维度示例

MDX - 3rd + dimension example needed

我正在努力学习 MDX。我是一名经验丰富的 SQL 开发人员。

我正在尝试查找具有两个以上维度的 MDX 查询示例。每个谈论 MDX 的网页都提供了简单的二维示例 link this:

select 
{[Measures].[Sales Amount]} on columns,
Customer.fullname.members on rows
from [Adventure Works DW2012]

我正在寻找使用以下别名的示例:PAGES(第三维?)、section(第四维?)和 Chapter(第五维?)。我已经试过了,但我认为它不正确:

select 
{[Measures].[Sales Amount]} on columns,
Customer.fullname.members on rows,
customer.Location.[Customer Geography] as pages
from [Adventure Works DW2012]

我正在尝试使用 MDX 查询获取此输出(这是来自 AdventureWorks DW2012):

您的屏幕截图中的这不是 3 维结果集,除非从中裁剪了一些内容。

类似于

SELECT [Geography].[Country].Members ON 0,
[Customer].[CustomerName].Members ON 1
FROM [whatever the cube is called]
WHERE [Measures].[Sales Amount]

(dimension/hierarchy/level 名字可能不完全正确) 会给出一个类似于您消息中的结果集。

我所知道的任何客户端工具都没有使用超二维维度和维度名称。 (其他人可能知道不同)。它们似乎存在于 MDX 中,因此 MDX 可以将 >2 维结果集传递给可以处理它们的客户端(例如,MDX 子查询将其结果传递给主查询)。

MDX中一个常用的技巧是通过交叉连接将两个维度的成员放到一个轴上:

SELECT {[日期].[日历日期].[日历年].成员 * [地理].[国家].成员} ON 0, [其他] ON 1 来自 [立方体]

下面的怎么样 - 它不会将超过两个维度发送回平面屏幕,但它使用相当多的维度 明确地:

SELECT 
  [Measures].[Sales Amount] ON O,
  [Customer].[fullname].MEMBERS ON 1
FROM
( 
  SELECT
    [Date].[Calendar Month].[Calendar Month].&[February-2012] ON 0,
    [Geography].[Country].[Country].&[Canada] ON 1,
    [Product].[Product].&[Red Bike] ON 2,
    [Customer].[Customer].&[foo bar] ON 3
  FROM [Adventure Works DW2012]
)

维度我补了 |层级 |成员组合,因为我无权访问多维数据集。

此外,如果我们考虑 隐式 维度,则采用以下内容:

SELECT 
  [Customer].[Location].[Customer Geography]  ON 0,
  [Customer].[fullname].[fullname].&[Aaron Flores] ON 1
FROM [Adventure Works DW2012]
WHERE 
  (
   [Measures].[Sales Amount]
  );

在切片器上,我使用了表示 tuple 的大括号 (..),但对于以下内容,这实际上是 shorthand:

SELECT 
  [Customer].[Location].[Customer Geography]  ON 0,
  [Customer].[fullname].[fullname].&[Aaron Flores] ON 1
FROM [Adventure Works DW2012]
WHERE 
  (
   [Measures].[Sales Amount]
  ,[Date].[Calendar Month].[Calendar Month].[All],
  ,[Geography].[Country].[Country].[All],
  ,[Product].[Product].[All]
  ,...
  ,...
  ....
  );

多维数据集中每个维度的 All 成员都可以包含在该切片器中而不影响结果。

所以 mdx 的整体性质是多维的 - 是的,您不会得到超过 2 维的 table 返回到您的屏幕,但您到达该网格集的方式可能涉及多个维度。