NetSuite公式需求:如何显示客户商品首单订购数量
NetSuite已保存搜索:获取首单订购数量的正确公式
问题分析
你之前的两个公式存在语法或逻辑问题:
- 第一个公式
MIN(CASE WHEN {custbody_reporting_ship_date} THEN {quantity} END):CASE WHEN后的条件仅指定了日期字段,未明确判断逻辑(比如是否等于分组内的最小日期),NetSuite无法识别该条件的有效性。 - 第二个公式
CASE WHEN (MIN({custbody_reporting_ship_date})THEN {quantity} END):存在语法错误,WHEN后缺少比较运算符(如=)和对应字段,且在非窗口函数场景下,聚合函数MIN()不能直接作为CASE的判断条件。
正确解决方案
在按客户、商品分组的已保存搜索中,需结合窗口函数匹配首单日期,再提取对应订购数量。具体操作如下:
公式字段设置
添加一个「公式数值」类型的字段,使用以下公式:
MAX(CASE WHEN {custbody_reporting_ship_date} = MIN({custbody_reporting_ship_date}) OVER (PARTITION BY {customer}, {item}) THEN {quantity} END)
公式说明
MIN({custbody_reporting_ship_date}) OVER (PARTITION BY {customer}, {item}):通过窗口函数OVER (PARTITION BY...),计算每个客户-商品分组下的最小(首单)发货日期。CASE WHEN {custbody_reporting_ship_date} = [首单日期] THEN {quantity} END:匹配当前行日期是否为该组的首单日期,若是则返回对应订购数量,否则返回空值。MAX()聚合:每个分组仅会有一行匹配首单日期,用MAX()可提取出该唯一的数量值(用MIN()效果一致)。
注意事项
- 确保已保存搜索已按
{customer}(客户)和{item}(商品)分组(在「结果」标签的「分组」选项中勾选这两个字段)。 - 确认
{custbody_reporting_ship_date}是正确的自定义发货日期字段ID,避免拼写错误。
内容的提问来源于stack exchange,提问作者Alex Brody
相关产品推荐
相关产品推荐

