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

CASE语句无法返回滚动12个月周期的销量总和

问题根源

你的语句始终返回0,核心是两个错误:

  1. BETWEEN的日期顺序写反了
    BETWEEN a AND b的生效逻辑是判断值大于等于a、小于等于b,要求a必须是比b小的下限值。你写的两个边界里,LAST_DAY(ADD_MONTHS({today}, -12))是12个月前的月末,LAST_DAY(ADD_MONTHS({today}, -13))是13个月前的月末,后者时间更早,相当于你要求交易日期同时满足「晚于12个月前的月末、早于13个月前的月末」,没有任何日期能符合这个条件,自然永远走ELSE分支返回0。
  2. 日期范围逻辑和你要的「前12个滚动月」需求不匹配
    你原来写的两个边界跨度只有1个月,哪怕顺序调对,也只能统计13个月前到12个月前这一个整月的销量,根本覆盖不到12个月的范围。
修正代码

根据常见的滚动12个月统计场景,分两种情况写:

  • 统计包含当前月在内的近12个月销量:
CASE 
    WHEN {trandate} BETWEEN ADD_MONTHS(LAST_DAY({today}), -12) + 1 AND LAST_DAY({today})
        THEN {quantity} 
        ELSE 0 
END
  • 统计不包含当前月的过往完整12个自然月销量(即从去年当月到上个月月末):
CASE 
    WHEN {trandate} BETWEEN ADD_MONTHS(LAST_DAY({today}), -13) + 1 AND LAST_DAY(ADD_MONTHS({today}, -1))
        THEN {quantity} 
        ELSE 0 
END
补充说明

写NetSuite保存搜索的公式时,用「上月最后一天+1」的方式取月份起始日,比手动拼接月份第一天的写法兼容性更好,能避免因为字段带时分秒精度导致的边界日期漏统计问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 06:27:18