Сценарий загрузки Qlikview — добавление поля и применение значения там, где совпадения не существует

#qlikview

#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]),'y','n') as [Key2isNull]

Resident ODP_StudySite;
  

Ключ соответствия — это ~Sitekey, и там, где в таблице нет совпадений, я хочу, чтобы он отображал «Нет совпадения» вместо нулевого значения. Я протестировал EXISTS и ISNULL (как показано в примере ниже, в Key2Exists и Key2IsNull) — однако он не работает. Это то, что я вижу в таблице прямо сейчас:

Пример таблицы

Есть идеи?

С наилучшими пожеланиями

Дэйв

Ответ №1:

Не думайте, что вы можете «помечать» записи до / во время объединения таблиц. Вы можете добиться этого в несколько шагов:

  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;
  

Комментарии:

1. Блестяще. Большое вам спасибо.