Разность между двумя полями в разных таблицах

Автор SEGA, 26 февраля 2018, 11:39:17

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

SEGA

Добрый день! Я не давно начал знакомится с Qlik и не много есть не понятно.
Например задача такая мне нужно посчитать остаток количестовоТовара и колРеалТовар
посчитать разницу между ними колТ - КолРеалТовар
Все обыскал, то ли  не могу понять то ли в qliki реально нету функции разницы  помогите с скриптом что бы данные из одно поле с именем колРеал Товар отнималась от КолТ и выводилость в поле Остаток

буду очень признателен

admin

Привет, чтобы сформировать новое поле , необходимо связать таблицы по ключевым полям и в запросе просто сформировать новое поле. Ничего сложного.

Здесь все хорошо описано

SEGA

Они у меня взаимосвязаны по ключу штрихкод новое поле сформировано
меня интересует сам скрипт проведения разницы между полями

SEGA

Например

штрихкод  ,   кол проданного товара,  количество товара
12314123213               10                           20
12312412341                2                             12

и я хотел бы получить разность в поле остаток
штрихкод  ,   кол проданного товара,  количество товара     остаток
12314123213               9                           20                        11

что то вроде того

millik

Цитата: SEGA от 26 февраля  2018, 12:35:20  
Например

штрихкод  ,   кол проданного товара,  количество товара
12314123213               10                           20
12312412341                2                             12

и я хотел бы получить разность в поле остаток
штрихкод  ,   кол проданного товара,  количество товара     остаток
12314123213               9                           20                        11

что то вроде того

Все очень просто. В скрипте очень много аналогий с SQL
Чтобы получилось как вы хотите, можно просто написать.

LOAD
[штрихкод],
[кол проданного товара], 
[количество товара],
[количество товара] - [кол проданного товара] as остаток

Если не уверены, что значения числовые, можно их дополнительно "прогнать" через функцию Num().

Хотя я бы в принципе рекомендовал так делать со всеми полями, чтобы явно дать знать движку какого типа значение находится в поле: текст через Text(), числа через Num(), даты через Date() и т.п.. Потому что потом, как показывает практика, бывают недопонимания между разработчиком и Qlik'ом =)

SEGA

Сам код программа  прокомпелировала, однако результат безуспешен вот код, почему не рассчитывает? помогите
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 Остаток;

admin

А если примерно так:

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;

SEGA


admin

Суть уловили?
Скрипт считает поля только в одной таблице.

millik

Пока писал ответ, уже всё объяснили)

ПС
Не очень понял зачем вы используете оператор Directory без ничего. И зачем вы загрузили пустую таблицу load * Inline [Остаток, Проценты];

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