跳到主要內容

Previous - 指令碼函數

在此頁面

Previous - 指令碼函數

Previous() 使用來自先前輸入記錄的資料,找到 expr 運算式的值。在內部表格的第一筆記錄中,此函數會傳回 NULL

Syntax:  

Previous(expr)

Return data type: 雙值

Arguments:  

Previous 引數
引數 描述
expr 包含待測量資料的運算式或欄位。

運算式可以包含巢狀 previous() 函數,以存取更早之前的記錄。資料是直接擷取自輸入來源,因此也可參考尚未載入 QlikView 的欄位,即尚未儲存在關聯資料庫中的欄位。

Limitations:  

在內部表格的第一筆記錄中,此函數會傳回 NULL

Example 1:  

Sales2013:

Load *, (Sales - Previous(Sales) )as Increase Inline [

Month|Sales

1|12

2|13

3|15

4|17

5|21

6|21

7|22

8|23

9|32

10|35

11|40

12|41

] (delimiter is '|');

 

透過使用 Load 陳述式中的 Previous() 函數,我們可以比較 Sales 的目前值與前置值,並將它用在第三個欄位 Increase 中。

範例 1 結果
Month Sales Increase
1 12 -
2 13 1
3 15 2
4 17 2
5 21 4
6 21 0
7 22 1
8 23 1
9 32 9
10 35 3
11 40 5
12 41 1

Example 2:  

Sales2013:

Load * Inline [

Month|Sales

1|12

2|13

3|15

4|17

5|21

6|21

7|22

8|23

9|32

10|35

11|40

12|41

] (delimiter is '|');

 

Sales:

NoConcatenate Load *, (Sales - Previous(Sales) )as Increase Resident Sales2013 where Month > 6;

 

Drop Table Sales2013;

 

在此範例中,我們使用 WHERE 子句,排除了 Month 為 6 或更少的記錄。這仍然可以使用 Previous(),因為函數可以參考從載入中排除的資料。

在此情況下, Increase 對於 Month=7 的計算參考了已從載入中排除的 Month=6Sales 值。

範例 2 結果
Month Sales Increase
7 22 1
8 23 1
9 32 9
10 35 3
11 40 5
12 41 1