CASE WHEN函数在BO语义层设计中应用

  case when作为一个条件函数,虽然很简单,但是在语义层设计时用的很广范,下面做个简单的小结:
语法: case when 条件1 then 值1 else 值2 end
即:满足条件1时,为值1,否则为值2 end
case when 可以多重嵌套,实际工作中会经常用到。

1.在维度中应用:

场景:现要做一个关于部门费用的报表,其中只需展示‘销售部’,‘采购部’,‘财务部’的费用情况,其他的部门统一合并到‘其他’中。这是一个典型的case when函数在定义维度相关的物件中应用:
case when(xsflcj1.xsfl001_name='销售部') then '销售部' else
case when(xsflcj1.xsfl001_name='采购部') then '采购部' else
case when(xsflcj1.xsfl001_name='财务部') then '财务部' else '其他' end end end

2.在度量中使用

场景:现在要做一张‘部门A’销售达成分析的报表,要用到部门A的预测数据,但是‘部门A’的数据字段,并未在数据仓库单独给出。此时可以通过casewhen作为筛选条件,筛选出‘部门A’的数据。
SUM(CASE WHEN U_edf_sale_forecast.fcast_name='部门A' THEN U_edf_sale_forecast.fcast_JD ELSE 0 END)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。