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

MDX查询按日期过滤返回空表,已确认Cube有数据求问题原因

问题描述

我在MDX查询中尝试按日期筛选2023年3月1日之后的数据,但返回结果为空。已确认Cube中存在对应数据,且调整过日期格式,问题仍未解决。

原MDX查询

SELECT    [Measures].[Transaction Count] ON COLUMNS,
   NON EMPTY (     [Country].[Country].CHILDREN,
     [Country].[Network].CHILDREN,
     [Country].[Brand].CHILDREN,
     [Acquirer Settlement Date].[Year - Week].[Date]   ) ON ROWS FROM [Acquiring]
 WHERE (   FILTER(     [Acquirer Settlement Date].[Year - Quarter - Month].[Date].MEMBERS,     [Acquirer Settlement Date].[Year - Quarter - Month].CURRENTMEMBER.MEMBER_VALUE > '2023-03-01'   ) )

可能的原因及解决方法

  • 日期层级不匹配:WHERE子句使用[Year - Quarter - Month]层级的日期成员筛选,但ROWS轴用的是[Year - Week]层级的日期。两个层级的日期成员可能不属于同一维度分支,导致筛选逻辑未覆盖到ROWS轴的目标数据。建议统一使用同一日期层级,比如都用[Year - Quarter - Month].[Date]或[Year - Week].[Date]。

  • MEMBER_VALUE类型比较错误:MEMBER_VALUE返回的是日期类型而非字符串,直接和字符串'2023-03-01'比较会出现类型不匹配问题。改用MDX的Date()函数转换后再比较:

    [Acquirer Settlement Date].[Year - Quarter - Month].CURRENTMEMBER.MEMBER_VALUE > Date('2023-03-01')
    
  • WHERE子句FILTER用法不当:WHERE子句更适合用范围语法筛选日期,比FILTER更高效且不易出错。可替换为:

    WHERE [Acquirer Settlement Date].[Year - Quarter - Month].[Date].&[2023-03-01]:NULL
    
  • NON EMPTY的干扰:ROWS轴的NON EMPTY会过滤掉度量值为空的行,若筛选逻辑导致没有匹配到非空组合,就会返回空结果。可先去掉NON EMPTY测试是否有数据返回,再逐步排查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 04:35:27