2017-10-04 58 views
0

我上傳到Qlik我的sql代碼中,我想在Qlik中進行計算並添加這些自定義計算的一列。我怎樣才能做到這一點?我的代碼:將自定義列添加到Qlik中的SQL表中

SQLAS: 
SQL 

select 
costs.FLI, costs.COMPANY_NAME, costs.QTY_REC,  
fleet.COUNT_OF_TAILS_NO, 
pricel.NE_pricel, 
pn.atas   

from      
(select * 
from FLI_1 

union all 

select * 
from FLI_2 
) costs 

left join fleet on (costs.fli=fltc.fleet .fli) 

left join (select * from price 
      ) pricel on costs.fli=pricel.fli 
left join (select * from atata) atas on costs.fli=atas.fli 

; 

LOAD SQLAS, 

    If([FLI] = 'FLI110', 69,0) as [NAUJAS] 
    resident SQLAS; 

但是,我得到一個錯誤: enter image description here

如果我刪除resident SQLAS;我看到有沒有錯誤,但是,我無法找到新創建的列。

我應該如何正確地將列添加到Qlik SQL語句中?

回答

2
LOAD 
    SQLAS, 
    If([FLI] = 'FLI110', 69,0) as [NAUJAS] 
Resident 
    SQLAS; 

這個語句被翻譯成:負荷SQLAS表2場:SQLASFLI(上面有一些轉換)。

根據你的sql表SQLAS沒有字段SQLAS。如果要加載所有字段,請使用*。隨後,居民負荷將是這樣的:

SQLAS1: 
LOAD 
    *, 
    If([FLI] = 'FLI110', 69,0) as [NAUJAS] 
Resident 
    SQLAS; 

這個負載之後,您需要刪除原始SQLAS表,否則你會用大量的Synthetic Table

Drop Table SQLAS;

另一種形式給出的最終使用Preceding LOAD避免resident loadsyntetic keys

SQLAS: 
Load 
    *, 
    If([FLI] = 'FLI110', 69,0) as [NAUJAS] 
; 
SQLAS: 
SQL 
select 
    costs.FLI, costs.COMPANY_NAME, costs.QTY_REC, 
    ... the rest of the original sql 
; 

上面的腳本將生成相同的結果表,但不需要在新表中加載所有內容。

+0

謝謝!它有幫助 – orangutangas

相關問題