美文网首页商业智能BI那点事儿
CASE WHEN函数在BO语义层设计中应用

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

作者: 漱石先森 | 来源:发表于2018-01-24 13:57 被阅读4次

      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)

    相关文章

      网友评论

        本文标题:CASE WHEN函数在BO语义层设计中应用

        本文链接:https://www.haomeiwen.com/subject/kmcsaxtx.html