You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qlik Sense使用Join合并表后新增列参与计算提示字段不存在问题咨询

问题根因

Qlik Sense 脚本按自上而下的顺序执行,你在首次加载ORDERPOSITION表的LOAD语句中直接调用了DeliveredQuantity字段,但该字段是后续LEFT JOIN操作才会关联写入ORDERPOSITION表的,首次加载阶段该字段不存在,因此触发字段未找到报错。

修复方案

将TurnoverOrderPosition计算逻辑移到JOIN操作完成之后执行,先加载基础字段、完成关联,再做新增列计算,修改后的脚本如下:

ORDERPOSITION:
LOAD
AUFK_NR&'|'&FIRM_NR as %AUFK,
(FIRM_NR&'|'&AUFK_NR&'|'&AUFP_NR) AS %AUFPdelivered,
AUFP_NR,
ART_NR as %ART_NR,
ART_NR,
AUFP_PREIS2,
AUFP_PEHFAKTOR,
AUFP_PREISFAKTOR
FROM [lib://QVD/HKTRS2_V_AUFP.qvd]
(qvd);
 
LEFT JOIN (ORDERPOSITION)
LOAD (FIRM_NR&'|'&AUFK_NR&'|'&AUFP_NR) AS %AUFPdelivered,
AUFL_MENGE AS DeliveredQuantity
FROM [lib://QVD/HKTRS2_V_AUFL.qvd]
(qvd);

// 关联完成后新增计算列
NEW_ORDERPOSITION:
LOAD *,
(AUFP_PREIS2/AUFP_PEHFAKTOR/AUFP_PREISFAKTOR)*DeliveredQuantity AS TurnoverOrderPosition
RESIDENT ORDERPOSITION;

// 清理旧表避免数据冗余
DROP TABLE ORDERPOSITION;
RENAME TABLE NEW_ORDERPOSITION TO ORDERPOSITION;
额外注意事项
  • 如果存在关联不上的行,DeliveredQuantity会返回空值,计算出的TurnoverOrderPosition也会为空,可根据业务需要用Coalesce(DeliveredQuantity, 0)将空值替换为0,避免计算结果为空。
  • 请确认两个表的关联键%AUFPdelivered拼接规则完全一致,无大小写差异、多余空格、字段顺序错误等问题,避免关联失效导致DeliveredQuantity为空。

内容的提问来源于stack exchange,提问作者user17159356

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 20:36:03