【问题标题】:OBIEE Logical Expression - Sum by attributeOBIEE 逻辑表达式 - 按属性求和
【发布时间】:2017-06-01 19:49:30
【问题描述】:

我正在尝试在逻辑表源表达式构建器中创建一个计算列。

在我的例子中,一个订单是由行项目组成的,每行都有一个数量。

我想根据订单上所有订单项的总数量添加一个新属性。

我想做的是这样的:

SUM(quantity) BY ORDER_ID

但是那个语法不起作用。

这是我所拥有的:

CASE WHEN SUM("FINQ".""."XXDW"."xxdw_f_orders_items"."quantity") >= 100 THEN '>=100' ELSE '<100' END

【问题讨论】:

    标签: sql oracle plsql obiee


    【解决方案1】:

    您不需要 SUM。正如我在论坛上所说,您必须创建一个物理表达式,以便在聚合前执行计算。因此不需要 SUM,因为逻辑将逐行执行。您不想知道一揽子订单的大小,而是每个订单的大小。

    如果您针对 SampleApp Lite 执行此操作,它只是 D3 订单(事实属性)中的一个新逻辑列,具有以下物理表达式

    "CASE WHEN "F10 Revenue Facts (Order grain)"."Revenue" >= 100 then '>=100' else '<100' end
    

    完成。

    编辑:请关闭您的论坛帖子。其他用户也希望从中受益。

    【讨论】:

    • 我相信我确实需要一个总和,因为每个订单都由多个项目(行)组成。如果我使用您的逻辑,它将在项目级别执行分组。我希望在订单级别确定分组,该级别可以由许多行组成。
    • 换句话说,订单和订单项目表已被非规范化为一个表。我需要按订单号求和的数量,而不是订单项的行级别
    • 好的,如果您需要将孩子卷起来,那么您的“bin”基本上是基于级别的度量。有趣的是,您没有代表总数的物理标题。但只要所有项目都使用线性聚合就可以了。但是,标头应用折扣等将是不可能的。
    猜你喜欢
    • 1970-01-01
    • 2015-09-02
    • 1970-01-01
    • 2014-12-08
    • 1970-01-01
    • 2021-09-21
    • 2012-11-17
    • 2011-11-01
    相关资源
    最近更新 更多