sql-server - 将 MDX 转换为 SQL 语句

标签 sql-server tsql ssas mdx

我使用的是 SQL Server 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. 您的事实表名称是“yourfactTable”,它包含 以下列 a) Productkey 这是一个 foreginkey。 b) 市场 key 这是一个外键。 c) 以下三栏是事实和 本质上是数字。[继承自 Material 组],[拆分 Material 组 m 的百分比],[SKU m 的拆分百分比] 2)
  2. 您有一个名为 Product 的维度。这个表的主键是 产品 key 。它还有一列 [Sales Org SKU]
  3. 您有一个名为 Markey 的维度。这张表的主键是marketkey,还有一列[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]

关于sql-server - 将 MDX 转换为 SQL 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56788153/

相关文章:

sql-server - SQL Server pyodbc 驱动程序问题:libc++abi.dylib:以 std::runtime_error 类型的未捕获异常终止

sql-server - SSMS 18.1 Azure AD 连接选项弹出窗口

.Net 将 NULL 值从变量值插入到 SQL Server 数据库中

sql - 将关联表展平为多值列?

SQL:查找字符串中连续的重复字符

sql - TSQL使用正则表达式提取字符串的一部分

sql - 如何在 SQL Server 2008 的 T-SQL 中比较两个字符串是否包含相同的单词?

visual-studio - 构建项目时出现 ssas 分区错误 - 该项目已存在于集合中

c# - ADOMD 连接错误

ssis - 处理默认(整个数据库)SSIS 任务实际上是做什么的?