将 MDX 转换为 SQL 语句

Convert MDX to SQL statement

我正在使用 SQL 服务器 2016。

我是 MDX 新手。是否可以将 MDX 语句转换为 SQL?有转换器吗?

下面是我的 MDX - 如何将其转换为 SQL?:

WITH MEMBER _x AS   
IIF( [Measures].[Inherit from Material Group] <> 0, 
[Measures].[Splitting Percent at Material Group m], 
[Measures].[Splitting Percent at SKU m] )  
SELECT _X  ON 0,  NON EMPTY (  
[Product].[Sales Org SKU].[Sales Org SKU],  
[MARKET].[Sales Org Ship to Party].[Sales Org Ship to Party]  
) ON 1 FROM TEST

您需要了解,您可以在 SQL 中有一个等价的 MDX 查询,但是,SQL 版本将 运行 在为您的 SSAS 提供数据的维度模型/星型架构上解决方案。

在下面的翻译中,我对您的维度模型/星型模式做出了以下假设

  1. 你的事实 table 名称是 "yourfactTable",它包含 以下列 a) Productkey 这是一个 foreginkey。 b) 市场密钥 这是一个外键。 c) 以下三栏是事实和 本质上是数字。[继承自 Material 组],[拆分 Material 组 m] 的百分比],[SKU m 的拆分百分比] 2)
  2. 您有一个名为 Product 的维度。这个 table 的主键是 产品密钥。它还有一列 [Sales Org SKU]
  3. 您有一个名为 Markey 的维度。这个 table 的主键是 marketkey.It 还有一列 [Sales Org Ship to Party]

基于此看下面的查询

 select [Product].[Sales Org SKU],
    [MARKET].[Sales Org Ship to Party],
    case when sum([Inherit from Material Group])<>0 
    then sum([Splitting Percent at Material Group m]) 
    else sum([Splitting Percent at SKU m]) end as  _x 
    from
    yourfactTable f
    inner join 
    [Product] p
    on f.productkey=p.productkey
    inner join 
    [MARKET] m
    on f.marketkey=m.marketkey
    group by 
    [Product].[Sales Org SKU],[MARKET].[Sales Org Ship to Party]