Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
Октябрь 22, 2018, 05:39:13 pm

Автор Тема: Фильтр по значению текстового поля в списке Qlikview  (Прочитано 2288 раз)

Оффлайн irabars

  • Новичок
  • *
  • Сообщений: 9
  • Рейтинг: +1/-0
    • Просмотр профиля
Вопрос от совсем новичка.
Имею таблицу базы данных, состоящую. например, из 2 столбцов:
1. Наименование
2. Статус.
Статус может принимать значение "актуальная" и "аннулирована".
Как загрузить только записи, имеющие статус "актуальная"?

пробовала в операторе Load использовать конструкцию Where Статус='актуальная', не работает....

спасибо.

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1207
  • Страна: ru
  • Рейтинг: +128/-0
    • Просмотр профиля
Re: Фильтр по значению текстового поля в списке
« Ответ #1 : Январь 12, 2015, 06:21:39 pm »
Добрый день
в вашем случае
where wildmatch( [Статус], 'актуальная')

Оффлайн irabars

  • Новичок
  • *
  • Сообщений: 9
  • Рейтинг: +1/-0
    • Просмотр профиля
Re: Фильтр по значению текстового поля в списке
« Ответ #2 : Январь 13, 2015, 11:33:02 am »
Спасибо. Попробовала в скрипте... не работает(((

Неофициальный форум пользователей QlikView & Qlik Sense

Re: Фильтр по значению текстового поля в списке
« Ответ #2 : Январь 13, 2015, 11:33:02 am »

Оффлайн irabars

  • Новичок
  • *
  • Сообщений: 9
  • Рейтинг: +1/-0
    • Просмотр профиля
Re: Фильтр по значению текстового поля в списке
« Ответ #3 : Январь 13, 2015, 11:43:37 am »
Спасибо. Разобралась ;D

Оффлайн Александр

  • Новичок
  • *
  • Сообщений: 4
  • Страна: ua
  • Рейтинг: +1/-0
    • Просмотр профиля
А поподробнее можно, что исправили, чтобы заработало?

Оффлайн Александр

  • Новичок
  • *
  • Сообщений: 4
  • Страна: ua
  • Рейтинг: +1/-0
    • Просмотр профиля
[Лист1]:
LOAD
[Наименование],
[Статус],
[Количество]
 FROM [lib://Desktop/Книга1.xlsx]
(ooxml, embedded labels, table is Лист1);
where wildmatch( [Статус], 'актуальная')


вот код. не работает.

Оффлайн DmitryK

  • Наставник
  • **
  • Сообщений: 63
  • Страна: ru
  • Рейтинг: +20/-0
  • QlikView v.11.20
    • Просмотр профиля
Добрый день!
1. ';' необходимо ставить после where. Возможно в коде у вас все верно, но тут нет
2. Попробуйте так:

load
,Статус
,Наименование
where flag = 1;
load        
        if(trim(lower(Статус)) = 'актуальная', 1,0) as flag
,Статус
,Наименование
FROM [lib://Desktop/Книга1.xlsx]
(ooxml, embedded labels, table is Лист1);


Т.е. создаем числовой флаг, при этом убираем пробелы в начале и в конце строки (вдруг есть...мы же не можем быть уверенны в Excel на все 100%) + делаем строку мелкими буквами, тем самым придаем однородность нашим значениям, далее ищем с помощью if -а наши значения и если находим, то ставим 1, если нет, то 0.
Далее снова грузим с условием Where flag = 1, т.е. отбираем то что надо)

Неофициальный форум пользователей QlikView & Qlik Sense


Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1207
  • Страна: ru
  • Рейтинг: +128/-0
    • Просмотр профиля
Привет, как верно подметил Дмитрий, проверьте синтаксис.
Точкая с запятой завершают ператор Load, а условие "Where.." должно быть частью конструкции оператора Load.
Уберите ; перед where и поставьте после условия.

Неофициальный форум пользователей QlikView & Qlik Sense