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

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

Название: Update поля в скрипте QlikView
Отправлено: Иван от 08 сентября 2015, 04:16:13
Всем привет!

Предположим, что у нас есть таблица, которая генерируется скриптом:
ExampleTbl:
LOAD * Inline [
field1, field2, field3
1,2,3
];


Как, к примеру, обновить field2? Может быть есть какая-то полезная фича? Не смог найти в открытых источниках =(

Обновить поле нужно именно в этой таблице. Возможно есть нестандартный прием? Или опять воротить через JOIN?

С уважением,
Иван
Название: Re: Update поля в скрипте QlikView
Отправлено: Иван от 08 сентября 2015, 05:10:37
Блин, даже команды DELETE нет  :-\
Название: Re: Update поля в скрипте QlikView
Отправлено: bibis от 08 сентября 2015, 05:52:59
drop field[ s ] fieldname [ , fieldname2 ...] [from tablename1 [ ,
tablename2 ...]]

Название: Re: Update поля в скрипте QlikView
Отправлено: Иван от 08 сентября 2015, 06:04:13
Я имел ввиду delete from table where...
Название: Re: Update поля в скрипте QlikView
Отправлено: admin от 08 сентября 2015, 06:20:04
Привет, если такая необходимость возникает можно перезагрузить таблицу в скрипте с обработкой полей по нужному алгоритму и удалением оригинала. В результате останется таблица с измененными полями. Join и не нужен.
Название: Re: Update поля в скрипте QlikView
Отправлено: Иван от 08 сентября 2015, 06:50:42
А если полей 9 лямов и больше? В цикле?
Название: Re: Update поля в скрипте QlikView
Отправлено: admin от 08 сентября 2015, 06:53:44
А как они оказались в Qlikview в неподготовленном виде?  :)

По теме:

ExampleTbl:
LOAD * Inline [
field1, field2, field3
1,2,3
4,5,6
];
ExampleTb2:
NoConcatenate
LOAD field1, 22 as field2, field3 Resident ExampleTbl Where WildMatch(field2,'2');
LOAD field1, field2, field3 Resident ExampleTbl Where not WildMatch(field2,'2');

DROP Table ExampleTbl;

Название: Re: Update поля в скрипте QlikView
Отправлено: Иван от 08 сентября 2015, 09:06:00
Перепутал 'поля' со 'строками'(
их пока нет, я предположил такую задачу в рамках ETL. Надеюсь, что в моем эксперименте такое не потребуется) но резюме по ETL инструментарию Qlikview наклевывается.

Пасиб за пример!)
Название: Re: Update поля в скрипте QlikView
Отправлено: admin от 09 сентября 2015, 07:27:33
Привет.
Да, Иван, ты прав. ETL своеобразен.  :)
Название: Re: Update поля в скрипте QlikView
Отправлено: Иван от 09 сентября 2015, 04:50:53
Нашел в QlikView Components функцию обновления UpdateQvd. Не совсем тот самый UPDATE, который хотелось бы получить, но возможно будет удобно использовать. Время покажет  :)

@syntax CALL Qvc.UpdateQvd ('Table', 'QVDname', 'PrimaryKey', ['DbKeepKeys'], [ReplaceQvd]);

@param 1 String. Qlikview tablename.
@param 2 String. QVD File Path. A relative name honors the current Directory setting.
@param 3 String. The Primary Key column of table.
@param 4 String, Optional. Name of table containing primary key values that should be kept in the QVD. The keys must be in the first field of the table. For performance reasons, the Fieldname should *not* be the same as the Primary Key Fieldname.
@param 4 True/False (-1/0). If True, existing QVD will be replaced without updates, as a full reload.