You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在SSAS MDX查询中编写UNION语句?以两个多维数据集为例

在SSAS MDX中实现多维数据集的UNION操作

当然可以在SSAS MDX查询里用UNION函数来合并来自不同多维数据集的结果!不过有个关键前提:你要合并的两个结果集必须结构完全一致——维度层次、列的数量、数据类型都得严格匹配,不然MDX会直接抛出错误。

核心知识点

  • MDX的UNION函数专门用于合并两个同结构的集合,不管是成员集还是元组集都适用。
  • 要引用不同多维数据集的对象,你需要在查询里明确指定所属的Cube,格式为[Cube名称].[维度].[层次].[成员]。

实战示例(针对Adventure_Works_1和Adventure_Works_2)

假设我们要合并两个Cube里的产品类别销售总额,以下是完整的MDX查询示例:

WITH 
MEMBER [Measures].[Total Sales] AS 
    [Measures].[Sales Amount]
SELECT 
    UNION(
        -- 从Adventure_Works_1获取的结果集
        NON EMPTY {[Adventure_Works_1].[Product].[Category].[Category].Members} * {[Measures].[Total Sales]} ON 0,
        -- 从Adventure_Works_2获取的结果集
        NON EMPTY {[Adventure_Works_2].[Product].[Category].[Category].Members} * {[Measures].[Total Sales]} ON 0
    ) ON COLUMNS
FROM [Adventure_Works_1] -- 这里任选一个Cube作为查询的基础容器即可

重要注意事项

  • 结构一致性:两个集合的元组结构必须完全相同,比如第一个集合是(产品类别, 度量值),第二个集合也必须是同样的维度组合,不能出现维度数量或层次不一致的情况。
  • 重复项处理:默认情况下UNION会自动去除重复的元组;如果需要保留重复项,可以添加ALL参数,写成UNION(set1, set2, ALL)。
  • 权限要求:执行查询的账号必须同时拥有两个多维数据集的访问权限,否则会出现权限不足的报错。

内容的提问来源于stack exchange,提问作者Khilesh Chauhan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:25:29