我上传到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;
如果我删除resident SQLAS;
我发现没有错误,我找不到新创建的列。
如何正确地将列添加到Qlik SQL语句?
答案 0 :(得分:2)
LOAD
SQLAS,
If([FLI] = 'FLI110', 69,0 ) as [NAUJAS]
Resident
SQLAS;
此语句已转换为:从SQLAS
表2字段加载:SQLAS
和FLI
(对其进行一些转换)。
基于您的sql,表SQLAS
没有字段SQLAS
。如果要加载所有字段,请使用*
。然后驻留负载将如下所示:
SQLAS1:
LOAD
*,
If([FLI] = 'FLI110', 69,0 ) as [NAUJAS]
Resident
SQLAS;
在此次加载后,您需要删除原来的SQLAS
表格,否则您最终将获得大量Synthetic Table
Drop Table SQLAS;
另一个方法是使用Preceding LOAD来避免resident load
和syntetic 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
;
上面的脚本将生成相同的结果表,但不需要在新表中加载所有内容。