Фильтр по значению текстового поля в списке Qlikview

Автор irabars, 12 января 2015, 06:02:33

« назад - далее »

irabars

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

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

спасибо.

admin

#1
Добрый день
в вашем случае
where wildmatch( [Статус], 'актуальная')

irabars

Спасибо. Попробовала в скрипте... не работает(((

irabars


Александр

А поподробнее можно, что исправили, чтобы заработало?

Александр

[Лист1]:
LOAD
[Наименование],
[Статус],
[Количество]
FROM [lib://desktop/Книга1.xlsx]
(ooxml, embedded labels, table is Лист1);
where wildmatch( [Статус], 'актуальная')


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

DmitryK

Добрый день!
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, т.е. отбираем то что надо)

admin

Привет, как верно подметил Дмитрий, проверьте синтаксис.
Точкая с запятой завершают ператор Load, а условие "Where.." должно быть частью конструкции оператора Load.
Уберите ; перед where и поставьте после условия.

Яндекс.Метрика