2017-10-04 61 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

相关问题