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

如何将指定SQL转换为DAX?请求修正DAX过滤逻辑错误

SQL转DAX过滤逻辑修正需求

我已经实现了SUM求和的自定义度量值[Total Outstanding],但将以下SQL语句转换为DAX时,过滤逻辑无法正确生效,请求协助修正:

SQL原代码

select SUM(amount) from TABLE
where BusinessDate = '2023-02-11'
OR (Segment = 'General' and Days_Without_Payments < 210) 
OR (Segment = 'Enterprise' and Days_Without_Payments < 1215)
OR (Segment = 'House' and Days_Without_Payments < 1945)

我尝试编写的DAX代码

Measure = CALCULATE([Total Outstanding],
FILTER(VALUES(BILBL_WO[Date]),BILBL_WO[Date]=MAX(BILBL_WO[Date])),
AND(BILBL_WO[Days_Without_Payments] < 210, BILBL_WO[Segment] = "General") ||
AND(BILBL_WO[Days_Without_Payments] < 1215, BILBL_WO[Segment] = "Enterprise") ||
AND(BILBL_WO[Days_Without_Payments] < 1945, BILBL_WO[Segment] = "House")
)

修正后的DAX代码及说明

你的DAX核心问题是:CALCULATE的多筛选参数默认是AND逻辑,但你需要的是OR组合,必须把所有OR条件整合到同一个筛选容器中;另外原SQL的固定日期条件和你用MAX(BILBL_WO[Date])的动态逻辑需要明确对齐。

方案1:严格匹配SQL固定日期逻辑

修正后的度量值 = CALCULATE(
    [Total Outstanding],
    FILTER(
        ALL(BILBL_WO), -- 若要保留部分上下文筛选,可替换为ALLSELECTED(BILBL_WO)
        BILBL_WO[BusinessDate] = DATE(2023,2,11)
        || (BILBL_WO[Segment] = "General" && BILBL_WO[Days_Without_Payments] < 210)
        || (BILBL_WO[Segment] = "Enterprise" && BILBL_WO[Days_Without_Payments] < 1215)
        || (BILBL_WO[Segment] = "House" && BILBL_WO[Days_Without_Payments] < 1945)
    )
)

方案2:保留原DAX的动态最大日期逻辑

修正后的度量值 = CALCULATE(
    [Total Outstanding],
    FILTER(
        ALL(BILBL_WO),
        BILBL_WO[Date] = MAX(BILBL_WO[Date])
        || (BILBL_WO[Segment] = "General" && BILBL_WO[Days_Without_Payments] < 210)
        || (BILBL_WO[Segment] = "Enterprise" && BILBL_WO[Days_Without_Payments] < 1215)
        || (BILBL_WO[Segment] = "House" && BILBL_WO[Days_Without_Payments] < 1945)
    )
)

关键提示

  • 用FILTER包裹所有OR条件,确保逻辑和SQL完全一致
  • ALL(BILBL_WO)用于清除表的上下文筛选,如果你需要保留切片器等外部筛选,可替换为ALLSELECTED(BILBL_WO)或仅清除特定列的筛选(如ALL(BILBL_WO[BusinessDate], BILBL_WO[Segment]))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 14:50:21