计算阈值日期 - Qliksense 函数

问题描述 投票:0回答:1

所以我有以下格式的数据:

订单号 订购日期 订购数量 阈值数量 累计金额
1 第一天 5 9 5
2 第二天 5 9 10
3 第3天 6 9 16

我想创建一个名为“阈值日期”的新列,其中应包含值:

阈值日期
第二天
第二天

这来自于网络

Cumulative Sum
越过
Threshold Qty
时将是第一个日期的关系。通过采用保存固定值的变量,可以在 Python 中轻松实现此功能。

Qlik Sense 是否有任何功能或方法可以帮助解决以下问题?我对 Qlik Sense 比较陌生。

join qlikview qliksense
1个回答
0
投票

下面的脚本应该会给您预期的结果(查看屏幕截图)。

解决此问题的一种方法是检查每一行:

  • 如果
    Threshold Date
    1 的先前值为
    null
    2
    • 如果它不是,则返回
      Threshold Date
    • 的最后加载/先前值
    • 为空然后检查
      Cummulative Sum
      的当前值是否大于
      Threshold Qty
      的当前值
      • if
        true
        则返回
        Order Date
      • 的当前值
      • 如果
        false
        返回
        null

1 可以在创建新字段时引用新字段,但只能在其先前值的上下文中引用。这就是为什么在创建

peek([Threshold Date])
时可以使用
[Threshold Date]
(也称为不从上一个表加载)

2 在 Qlik(Sense 和 View)中,

-1
true
0
false
。更多信息这里

3 有关

peek()
功能的更多信息这里

Load 
  *,
    if(
        IsNull(peek([Threshold Date])) = 0, 
        peek([Threshold Date]),
        if(
            [Cummulative Sum] > [Threshold Qty],
            [Order Date], 
            null())
    ) as [Threshold Date]
;
Load * Inline [
Order ID, Order Date, Order Qty, Threshold Qty, Cummulative Sum
1       , Day1      , 5        , 9            , 5
2       , Day2      , 5        , 9            , 10
3       , Day3      , 6        , 9            , 16
];

结果表将是:

© www.soinside.com 2019 - 2024. All rights reserved.