如何修改CASE公式实现计算结果大于20返回20否则返回原值
解决方案
你可以通过外层嵌套判断逻辑实现需求,以下是两种适用不同场景的写法:
写法1:使用LEAST函数(推荐,绝大多数SQL/表单公式场景兼容)
LEAST函数会返回所有传入参数的最小值,刚好匹配「大于20取20,否则取原值」的逻辑,写法最简洁:
LEAST( 20, CASE WHEN {memberitem.inventorylocation} = 'Warehouse 1' AND {type} = 'Kit/Package' THEN {memberitem.locationquantityavailable} WHEN {inventorylocation} = 'Warehouse 1' THEN {locationquantityavailable} END )
写法2:嵌套CASE判断(兼容无LEAST函数的特殊场景)
如果你使用的环境不支持LEAST函数,可以手动嵌套一层CASE判断实现:
CASE -- 先判断原公式的计算结果是否大于20 WHEN ( CASE WHEN {memberitem.inventorylocation} = 'Warehouse 1' AND {type} = 'Kit/Package' THEN {memberitem.locationquantityavailable} WHEN {inventorylocation} = 'Warehouse 1' THEN {locationquantityavailable} END ) > 20 THEN 20 -- 小于等于20时返回原公式结果 ELSE CASE WHEN {memberitem.inventorylocation} = 'Warehouse 1' AND {type} = 'Kit/Package' THEN {memberitem.locationquantityavailable} WHEN {inventorylocation} = 'Warehouse 1' THEN {locationquantityavailable} END END
注意事项
请把原公式里的中文弯引号‘’统一替换为英文直引号'',避免出现语法解析错误。
内容的提问来源于stack exchange,提问作者JustLearning
相关产品推荐
相关产品推荐

