Расчеты в скрипте

Автор Ирина, 21 января 2015, 04:36:42

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

Ирина

Подскажите, пожалуйста, как сделать следующий расчет в скрипте? Во второй таблице рассчитываю сумму возврата, используя [Цена продажи,руб.] из первой таблицы. Или так нельзя?
Сейчас выдает ошибку при загрузке скрипта. Пример:

Заказы:
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

#1
Для начала вам надо связать эти две таблицы по общему полю, например [№ заказа]. Причем желательно чтобы и в одной и во второй таблице записей по этому полю было по одной. В вашем случае я так понимаю что в таблице Возвраты: данных по [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 и привязали [Ставка НДС] товара к полю [Код товара]. А потом рассчитали сумму [Закупочная приход с НДС]. После чего удалили временную таблицу. Возможно есть и друггии способы.

Ирина

Извините, я немного ошиблась, в таблице Возвраты есть данные по  [ID товара], поскольку возвращаются не все товары заказа. Кроме того, например, могли заказать товар 5 шт., тогда в таблице Заказы это пойдет одной строчкой и количеством 5 штук, в таблице Возвраты, если вернули 2 товара из 5 по двум разным причинам, то пойдет двумя строчками. В таком случае, как я понимаю, связывать нельзя.

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

admin

Добрый день.
Скорей всего, в заказах у вас комбинация уникальная [№ заказа], [ID товара].
В возвратах таких комбинаций может быть несколько.
Следовательно, по примеру piton грузим сначала таблицу возвратов, к ней присоединяем таблицу заказов. В итоге получим для каждой строки возврата сведения из строки заказов.

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

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