Добрый день! Я не давно начал знакомится с Qlik и не много есть не понятно.
Например задача такая мне нужно посчитать остаток количестовоТовара и колРеалТовар
посчитать разницу между ними колТ - КолРеалТовар
Все обыскал, то ли не могу понять то ли в qliki реально нету функции разницы помогите с скриптом что бы данные из одно поле с именем колРеал Товар отнималась от КолТ и выводилость в поле Остаток
буду очень признателен
Привет, чтобы сформировать новое поле , необходимо связать таблицы по ключевым полям и в запросе просто сформировать новое поле. Ничего сложного.
Здесь все хорошо описано (https://help.qlik.com/ru-RU/sense/September2017/Content/Tutorials.htm)
Они у меня взаимосвязаны по ключу штрихкод новое поле сформировано
меня интересует сам скрипт проведения разницы между полями
Например
штрихкод , кол проданного товара, количество товара
12314123213 10 20
12312412341 2 12
и я хотел бы получить разность в поле остаток
штрихкод , кол проданного товара, количество товара остаток
12314123213 9 20 11
что то вроде того
Цитата: SEGA от 26 февраля 2018, 12:35:20
Например
штрихкод , кол проданного товара, количество товара
12314123213 10 20
12312412341 2 12
и я хотел бы получить разность в поле остаток
штрихкод , кол проданного товара, количество товара остаток
12314123213 9 20 11
что то вроде того
Все очень просто. В скрипте очень много аналогий с SQL
Чтобы получилось как вы хотите, можно просто написать.
LOAD
[штрихкод],
[кол проданного товара],
[количество товара],
[количество товара] - [кол проданного товара] as остаток
Если не уверены, что значения числовые, можно их дополнительно "прогнать" через функцию Num().
Хотя я бы в принципе рекомендовал так делать со всеми полями, чтобы явно дать знать движку какого типа значение находится в поле: текст через Text(), числа через Num(), даты через Date() и т.п.. Потому что потом, как показывает практика, бывают недопонимания между разработчиком и Qlik'ом =)
Сам код программа прокомпелировала, однако результат безуспешен вот код, почему не рассчитывает? помогите
LOAD Товар, Поставщик, UNP, КоличествоТ, Штрихкод, PRICEN, ЦенаР
FROM Продажа.xlsx (ooxml, embedded labels);
Directory;
LOAD Штрихкод, [КоличествоРТ]
FROM Реализация.xls (biff, embedded labels, table is Лист1$);
Directory;
load * Inline [Остаток, Проценты];
load
[Штрихкод],
[КоличествоТ],
[КоличествоРТ],
num(КоличествоТ)-num(КоличествоРТ) as Остаток;
А если примерно так:
t1:
LOAD Товар, Поставщик, UNP, КоличествоТ, Штрихкод, PRICEN, ЦенаР
FROM Продажа.xlsx (ooxml, embedded labels);
Directory;
left join (t1)
LOAD Штрихкод, [КоличествоРТ]
FROM Реализация.xls (biff, embedded labels, table is Лист1$);
left join (t1)
Штрихкод,
КоличествоТ-КоличествоРТ as Остаток
resident t1;
УРА получилось ОГРОМНОЕ СПАСИБО
Суть уловили?
Скрипт считает поля только в одной таблице.
Пока писал ответ, уже всё объяснили)
ПС
Не очень понял зачем вы используете оператор Directory без ничего. И зачем вы загрузили пустую таблицу load * Inline [Остаток, Проценты];