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

Для разработчиков => Вопросы по Qlik Sense & QlikView => Тема начата: Ирина от 03 сентября 2015, 04:59:17

Название: Есть ли в QlikView альтернатива функции ВПР?
Отправлено: Ирина от 03 сентября 2015, 04:59:17
Подскажите, пожалуйста, есть ли в скрипте альтернативная функция как ВПР в экселе?
То есть можно ли как-то сравнивать 2 разных текстовых поля в двух разных таблицах?
И если нашлись одинаковые значения, то нужно их вывести.
Название: Re: Есть ли в QlikView альтернатива функции ВПР?
Отправлено: kvv от 03 сентября 2015, 05:01:55
Добрый день.
Попробуй использовать inner join.
Название: Re: Есть ли в QlikView альтернатива функции ВПР?
Отправлено: Ирина от 03 сентября 2015, 05:21:38
А что такое inner join?
Название: Re: Есть ли в QlikView альтернатива функции ВПР?
Отправлено: kvv от 03 сентября 2015, 05:45:55
Можете привести пример двух таблиц которые имеются и что нужно из них выбрать (каков должен быть результат)? Для примера, достаточно будет 10-20 строк.
Так будет проще и будет конкретика.
Название: Re: Есть ли в QlikView альтернатива функции ВПР?
Отправлено: Иван от 08 сентября 2015, 08:12:33
Цитата: Ирина от 03 сентября  2015, 04:59:17  
Подскажите, пожалуйста, есть ли в скрипте альтернативная функция как ВПР в экселе?
То есть можно ли как-то сравнивать 2 разных текстовых поля в двух разных таблицах?
И если нашлись одинаковые значения, то нужно их вывести.

Ирина, здравствуйте!

ВПР на английском VLOOKUP (это в Excel). Для QlikView существует аналог:
lookup('<Поле, которое показываем>','<Поле в сравниваемой таблице, которое сопадает>',<Поле в исходной таблице>,'<Сравниваемая таблица>')

Пример:
Товары:
LOAD * INLINE [
    ID Товара, Наименование товара, Цена товара
    100, Удочка, 5000
    101, Леска, 560
    102, Крючок, 40
    103, Пассатижи, 90
    104, Складной нож, 2500
    105, Рюкзак, 3000
    106, Поплавок, 150
    107, Наживка, 100
    108, Кепка, 690
    109, Жилет, 1800
    110, Резиновая лодка, 7900
    111, Фонарь, 2000
];

Транзакции:
LOAD * INLINE [
    Номер транзакции, Код товара, Количество
    1, 106, 2
    2, 107, 1
    3, 111, 1
    4, 102, 1
    5, 102, 1
    6, 109, 1
    7, 100, 2
    8, 103, 1
    9, 107, 1
    10, 103, 1
    11, 100, 1
    12, 100, 2
    13, 107, 1
    14, 110, 2
    15, 102, 1
    16, 103, 1
    17, 109, 1
    18, 109, 1
    19, 110, 1
    20, 103, 1
    21, 111, 1
    22, 109, 1
    23, 108, 1
    24, 100, 2
    25, 108, 1
    26, 101, 1
    27, 106, 1
    28, 101, 2
    29, 105, 1
    30, 101, 1
];

[Сумма покупок]:
LOAD [Номер транзакции],
[Код товара],
[Количество],
lookup('Наименование товара','ID Товара',[Код товара],'Товары') as [Наименование товара],
lookup('Цена товара','ID Товара',[Код товара],'Товары') as [Цена товара],
[Количество]*lookup('Цена товара','ID Товара',[Код товара],'Товары') as [Сумма транзакции]
Resident [Транзакции];

DROP Tables [Товары], [Транзакции];