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

Для разработчиков => Вопросы по Qlik Sense & QlikView => Тема начата: irabars от 12 января 2015, 06:02:33

Название: Фильтр по значению текстового поля в списке Qlikview
Отправлено: irabars от 12 января 2015, 06:02:33
Вопрос от совсем новичка.
Имею таблицу базы данных, состоящую. например, из 2 столбцов:
1. Наименование
2. Статус.
Статус может принимать значение "актуальная" и "аннулирована".
Как загрузить только записи, имеющие статус "актуальная"?

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

спасибо.
Название: Re: Фильтр по значению текстового поля в списке
Отправлено: admin от 12 января 2015, 06:21:39
Добрый день
в вашем случае
where wildmatch( [Статус], 'актуальная')
Название: Re: Фильтр по значению текстового поля в списке
Отправлено: irabars от 13 января 2015, 11:33:02
Спасибо. Попробовала в скрипте... не работает(((
Название: Re: Фильтр по значению текстового поля в списке
Отправлено: irabars от 13 января 2015, 11:43:37
Спасибо. Разобралась ;D
Название: Re: Фильтр по значению текстового поля в списке Qlikview
Отправлено: Александр от 08 июля 2016, 10:47:08
А поподробнее можно, что исправили, чтобы заработало?
Название: Re: Фильтр по значению текстового поля в списке Qlikview
Отправлено: Александр от 08 июля 2016, 10:55:33
[Лист1]:
LOAD
[Наименование],
[Статус],
[Количество]
FROM [lib://Desktop/Книга1.xlsx]
(ooxml, embedded labels, table is Лист1);
where wildmatch( [Статус], 'актуальная')


вот код. не работает.
Название: Re: Фильтр по значению текстового поля в списке Qlikview
Отправлено: DmitryK от 08 июля 2016, 02:40:34
Добрый день!
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, т.е. отбираем то что надо)
Название: Re: Фильтр по значению текстового поля в списке Qlikview
Отправлено: admin от 08 июля 2016, 08:54:05
Привет, как верно подметил Дмитрий, проверьте синтаксис.
Точкая с запятой завершают ператор Load, а условие "Where.." должно быть частью конструкции оператора Load.
Уберите ; перед where и поставьте после условия.