Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
vtatarnikov
Creator
Creator

Как посчитать стоимость товаров пришедших за период по разным ценам

Здравствуйте, коллеги!

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

Посоветуйте, пожалуйста, как посчитать.. Конечно, напрашивается intervalmatch..

per.png

1 Solution

Accepted Solutions
Eugeny_Ilyin
Creator II
Creator II

Добрый день.
Напрашивается поле "Цена Закупки" в таблице Перемещения.
IntervalMatch() в расширенном варианте может помочь.

Например,

Цены:

LOAD * INLINE [

    ID_Товара, ЦенаЗакупки, ДатаОт, ДатаДо

    1, 1000, 01.01.2015, 10.01.2015

    1, 1200, 11.01.2015, 21.01.2015

    1, 1300, 22.01.2015, 31.01.2015

    2, 300, 01.01.2015, 15.01.2015

    2, 400, 16.01.2015, 24.01.2015

    2, 300, 25.01.2015, 31.01.2015

];

Движения:

LOAD * INLINE [

    ID_Товара, ДатаДвижения, Количество

    1, 05.01.2015, 10

    1, 12.01.2015, 20

    2, 11.01.2015, 5

    2, 18.01.2015, 3

    1, 23.01.2015, 4

    1, 25.01.2015, 66

    2, 26.01.2015, 4

    2, 7.01.2015, 8

];

inner Join IntervalMatch (ДатаДвижения,ID_Товара) LOAD ДатаОт, ДатаДо,ID_Товара  Resident Цены;

Затем, подтянуть цену закупки, убрать лишнее. и должна остаться цена по каждой дате движения.

View solution in original post

2 Replies
Eugeny_Ilyin
Creator II
Creator II

Добрый день.
Напрашивается поле "Цена Закупки" в таблице Перемещения.
IntervalMatch() в расширенном варианте может помочь.

Например,

Цены:

LOAD * INLINE [

    ID_Товара, ЦенаЗакупки, ДатаОт, ДатаДо

    1, 1000, 01.01.2015, 10.01.2015

    1, 1200, 11.01.2015, 21.01.2015

    1, 1300, 22.01.2015, 31.01.2015

    2, 300, 01.01.2015, 15.01.2015

    2, 400, 16.01.2015, 24.01.2015

    2, 300, 25.01.2015, 31.01.2015

];

Движения:

LOAD * INLINE [

    ID_Товара, ДатаДвижения, Количество

    1, 05.01.2015, 10

    1, 12.01.2015, 20

    2, 11.01.2015, 5

    2, 18.01.2015, 3

    1, 23.01.2015, 4

    1, 25.01.2015, 66

    2, 26.01.2015, 4

    2, 7.01.2015, 8

];

inner Join IntervalMatch (ДатаДвижения,ID_Товара) LOAD ДатаОт, ДатаДо,ID_Товара  Resident Цены;

Затем, подтянуть цену закупки, убрать лишнее. и должна остаться цена по каждой дате движения.

vtatarnikov
Creator
Creator
Author

Евгений, большое спасибо!