Qlikview加载脚本-在不存在匹配项的情况下附加字段并应用值

问题描述

我正在尝试在我的加载脚本中联接两个表 hlo2aLookup ODP_StudySite 。这是加载脚本:

hlo2aNewCol:
LOAD [~SiteKey]
RESIDENT hlo2aLookup;

left Join 
LOAD [~SiteKey],[~SiteKey] as [Key2],if(exists([~SiteKey],[~SiteKey]),'y','n') as [Key2Exits],if(isnull([~SiteKey]),'n') as [Key2isNull]

Resident ODP_StudySite;

matchkey是〜Sitekey ,并且在表上没有匹配项的地方,我希望它显示“ No match”,而不是空值。我已经测试了EXISTS和ISNULL(如下面的示例所示,在 Key2Exists Key2IsNull 中)-但是它不能正常工作。这就是我现在在表格中看到的:

Table Example

有什么想法吗?

最美好的祝愿

戴夫

解决方法

不要认为您可以在连接表之前/期间“标记”记录。 您可以通过几个步骤来实现:

  1. 将表加入临时表(在hlo2aNewCol_Temp下面的脚本中)
  2. 使用临时表的结果,并在此处编写逻辑。此表将是“最终”表
  3. 删除临时表
hlo2aNewCol_Temp:
LOAD 
  [~SiteKey]
RESIDENT hlo2aLookup;

left Join 

LOAD 
  [~SiteKey],[~SiteKey] as [Key2]
Resident ODP_StudySite;

hlo2aNewCol:
Load
  [~SiteKey],Key2,// this is probably not needed. just for reference.
  if( isNull(Key2),'No Match',Key2 ) as KeyStatus
Resident hlo2aNewCol_Temp;

Drop Table hlo2aNewCol_Temp;