NetSuite已保存搜索:合并多CASE语句并统计符合条件数量
NetSuite已保存搜索:合并CASE语句统计符合条件数量
你可以直接将5个CASE语句用加号+连接求和,NetSuite的查询引擎会自动计算每行符合条件的总数。为了避免字符串类型的潜在问题,建议把CASE语句里的返回值从字符串'1'/'0'改成数字1/0,合并后的完整公式如下:
CASE WHEN {custcol_sd} = {custcol_en.custrecord_e_startdate} THEN 0 ELSE 1 END + CASE WHEN {custcol_ed} = {custcol_en.custrecord_e_enddate} THEN 0 ELSE 1 END + CASE WHEN {custcol_pc} = {custcol_en.custrecord_e_pc} THEN 0 ELSE 1 END + CASE WHEN {closed} = 'F' AND {custcol_en.isinactive} = 'T' THEN 1 ELSE 0 END + CASE WHEN {closed} = 'T' AND {custcol_en.isinactive} = 'F' THEN 1 ELSE 0 END
说明
- 每个CASE语句独立判断一个条件,返回1代表该条件需要被统计,0则不需要
- 求和后得到的数值范围为0-5,对应每行符合的条件数量,可直接用于高亮规则设置
- 如果坚持使用原字符串返回值,可通过
TO_NUMBER()函数转换后再求和,示例:TO_NUMBER(CASE WHEN {custcol_sd} = {custcol_en.custrecord_e_startdate} THEN '0' ELSE '1' END) + TO_NUMBER(CASE WHEN {custcol_ed} = {custcol_en.custrecord_e_enddate} THEN '0' ELSE '1' END) + TO_NUMBER(CASE WHEN {custcol_pc} = {custcol_en.custrecord_e_pc} THEN '0' ELSE '1' END) + TO_NUMBER(CASE WHEN {closed} = 'F' AND {custcol_en.isinactive} = 'T' THEN '1' ELSE '0' END) + TO_NUMBER(CASE WHEN {closed} = 'T' AND {custcol_en.isinactive} = 'F' THEN '1' ELSE '0' END)
内容的提问来源于stack exchange,提问作者Nic
相关产品推荐
相关产品推荐

