QlikView / SQL - оператор If с IsNull - PullRequest
0 голосов
/ 14 января 2019

Логика проблемы заключается в том, что я пытаюсь решить проблему, при которой определенное поле будет возвращать нулевое значение, и я хотел бы автоматически сгенерировать значение для этого поля, аналогичное другому аналогичному значению, учитывая, что его другое релевантное значение поля одинаковые.

Пример (для обоих результатов):

* GradYear: 2018 ---- Имя студента: Джейк ---- * SchoolNumber: 54 ---- * StateCode: NA11 ---- CountyCode: MA02 ---- * SchoolName: Хилсберн ----

* GradYear: 2018 ---- Имя студента: Сара ---- * SchoolNumber: 54 ---- * StateCode: NA11 ---- CountyCode: NULL ---- * SchoolName: Hillsburn ----

Как видно выше, CountCody для Сары возвращает нулевое значение. Я пытаюсь сделать так, чтобы он автоматически заполнял значение для CountyCode, если другие аналогичные значения одинаковы для студентов. (Необходимые аналогичные значения показаны с помощью «*».) Кроме того, я пытаюсь решить эту проблему, не используя функцию «Предыдущая» или жестко запрограммированную информацию, чтобы ее можно было выполнить с любыми данными.

Моя первоначальная попытка состояла в том, чтобы использовать простой оператор if / IsNull вместе с функцией Peek, но значения сохранялись при возврате нулевого значения.

if ((isnull (CountyCode)), Peek (CountyCode), CountyCode) как CountyCode

Любая помощь с этим будет принята с благодарностью! Заранее спасибо.

1 Ответ

0 голосов
/ 14 января 2019

Я бы использовал applymap для этого.

позволяет говорить, что SchoolNumber уникально для CountyCode.

поэтому сначала давайте загрузим нашу таблицу сопоставления:

    CountyCode_Map:
    mapping load distinct SchoolNumber, CountyCode 
    from Data.qvd (qvd) where len(CountyCode)>0;

Теперь при загрузке ваших данных используйте это для CountyCode:

applymap('CountyCode_Map',SchoolNumber) as CountyCode

в случае, если SchoolNumber не является уникальным для CountyCode, вы можете использовать любое другое поле или объединение полей.

для получения дополнительной информации о applymap: ссылка

...