Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
Декабрь 18, 2017, 07:47:42 pm

Автор Тема: Расчеты в скрипте  (Прочитано 1371 раз)

Оффлайн Ирина

  • Наставник
  • **
  • Сообщений: 78
  • Рейтинг: +5/-0
    • Просмотр профиля
Расчеты в скрипте
« : Январь 21, 2015, 04:36:42 pm »
Подскажите, пожалуйста, как сделать следующий расчет в скрипте? Во второй таблице рассчитываю сумму возврата, используя [Цена продажи,руб.] из первой таблицы. Или так нельзя?
Сейчас выдает ошибку при загрузке скрипта. Пример:

Заказы:
LOAD [№ заказа],
     [ID товара],
     [Кол-во товара в заказе,шт.],
     [Цена продажи,руб.],
     [Кол-во товара в заказе,шт.]* [Цена продажи,руб.] as [Сумма продажи,руб.]
FROM
[C:\Users\volodina.i\Desktop\QV Mamsy v.1 (янв-фев)\Заказ-товар.xlsx]
(ooxml, embedded labels, table is [Заказ-товар]);

Возвраты:
LOAD [Дата возврата],
     [Кол-во возврата,шт.],
     [№ заказа],
     [Кол-во возврата,шт.]*[Цена продажи,руб.] as [Cумма возврата,руб.]
FROM
[C:\Users\volodina.i\Desktop\QV Mamsy v.1 (янв-фев)\Возвраты.xlsx]
(ooxml, embedded labels, table is Лист1);


Оффлайн piton

  • Новичок
  • *
  • Сообщений: 22
  • Рейтинг: +5/-0
    • Просмотр профиля
Re: Расчеты в скрипте
« Ответ #1 : Январь 22, 2015, 06:35:10 pm »
Для начала вам надо связать эти две таблицы по общему полю, например [№ заказа]. Причем желательно чтобы и в одной и во второй таблице записей по этому полю было по одной. В вашем случае я так понимаю что в таблице Возвраты: данных по [ID товара],  нет?

Приведу свой подобный пример как это можно сделать:
SAllMoveGoodTemp:
LOAD
          [Код товара],
          [Код завода],
          [Закупочная приход]
FROM C:\reports\DATA\MSEG.qvd (qvd)
left join
load
          [Код товара],
   [Социальный],
   [Ставка НДС]
Resident Articul;

Prihod_s:
load
          [Закупочная]*([Ставка НДС]/100+1))*(-1)))) as [Закупочная приход с НДС],
          [Код завода],
          [Код товара],
          [Социальный]
Resident SAllMoveGoodTemp;
Drop table SAllMoveGoodTemp;

В данном случае мы объединили    две таблицы по общим полям [Код завода], [Код товара] создав временную таблицу SAllMoveGoodTemp и привязали [Ставка НДС] товара к полю [Код товара]. А потом рассчитали сумму [Закупочная приход с НДС]. После чего удалили временную таблицу. Возможно есть и друггии способы.

Оффлайн Ирина

  • Наставник
  • **
  • Сообщений: 78
  • Рейтинг: +5/-0
    • Просмотр профиля
Re: Расчеты в скрипте
« Ответ #2 : Январь 23, 2015, 03:09:53 pm »
Извините, я немного ошиблась, в таблице Возвраты есть данные по  [ID товара], поскольку возвращаются не все товары заказа. Кроме того, например, могли заказать товар 5 шт., тогда в таблице Заказы это пойдет одной строчкой и количеством 5 штук, в таблице Возвраты, если вернули 2 товара из 5 по двум разным причинам, то пойдет двумя строчками. В таком случае, как я понимаю, связывать нельзя.

Нет ли какой-то функции, которая обращается к полю ранее загруженной таблицы?

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

Re: Расчеты в скрипте
« Ответ #2 : Январь 23, 2015, 03:09:53 pm »

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1005
  • Страна: ru
  • Рейтинг: +103/-0
    • Просмотр профиля
Re: Расчеты в скрипте
« Ответ #3 : Январь 23, 2015, 03:27:10 pm »
Добрый день.
Скорей всего, в заказах у вас комбинация уникальная [№ заказа], [ID товара].
В возвратах таких комбинаций может быть несколько.
Следовательно, по примеру piton грузим сначала таблицу возвратов, к ней присоединяем таблицу заказов. В итоге получим для каждой строки возврата сведения из строки заказов.

Без обработки в скрипте возможно получить сведения и выражениями, но только если построенная модель данных это позволит сделать.