在Qlik中将自定义列添加到SQL表

时间:2017-10-04 13:55:39

标签: sql qlikview qliksense

我上传到Qlik我的sql代码,我想在Qlik中进行计算并添加这些自定义计算的列。我怎样才能做到这一点?我的代码:

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语句?

1 个答案:

答案 0 :(得分: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
;

上面的脚本将生成相同的结果表,但不需要在新表中加载所有内容。