Нахождения остатков на конец каждого месяца

Автор AlfaLucky, 03 апреля 2019, 09:09:38

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

AlfaLucky

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

Матценности   ДатаОстатков   Количество   EдиницыИзмерения

Albester SilkyMatt (TM) 5770   30.03.2019   3000   кг
Albester SilkyMatt (TM) 5770   23.03.2019   3025   кг
Albester SilkyMatt (TM) 5770   22.03.2019   3075   кг
Albester SilkyMatt (TM) 5770   21.03.2019   3350   кг
Albester SilkyMatt (TM) 5770   15.03.2019   3450   кг
Albester SilkyMatt (TM) 5770   14.03.2019   3525   кг
Albester SilkyMatt (TM) 5770   13.03.2019   3575   кг
Albester SilkyMatt (TM) 5770   02.03.2019   3650   кг
Albester SilkyMatt (TM) 5770   28.02.2019   3675   кг
Albester SilkyMatt (TM) 5770   27.02.2019   3700   кг
Albester SilkyMatt (TM) 5770   15.02.2019   4075   кг
Albester SilkyMatt (TM) 5770   08.02.2019   4175   кг
Albester SilkyMatt (TM) 5770   07.02.2019   4950   кг
Albester SilkyMatt (TM) 5770   05.02.2019   5125   кг
Albester SilkyMatt (TM) 5770   02.02.2019   5300   кг
Albester SilkyMatt (TM) 5770   01.02.2019   5325   кг
Albester SilkyMatt (TM) 5770   29.01.2019   5450   кг
Albester SilkyMatt (TM) 5770   18.01.2019   5475   кг
Albester SilkyMatt (TM) 5770   16.01.2019   5550   кг
Albester SilkyMatt (TM) 5770   15.01.2019   5575   кг

admin

Т.е. требуется добавить дату для конца месяца и перенести соответствующий остаток?

AlfaLucky

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

Матценности   ДатаОстатков   Количество   EдиницыИзмерения

Albester SilkyMatt (TM) 5770   30.03.2019   3000   кг
Albester SilkyMatt (TM) 5770   28.02.2019   3675   кг
Albester SilkyMatt (TM) 5770   29.01.2019   5450   кг

admin

Делаете запрос на максимальную дату в каждом месяце, и джойните к этой дате запись остатка.

tmp1:
noconcatenate
load max(ДатаОстатков) as ДатаОстатков
resident таблица1
group by month(ДатаОстатков);
left join таблица1 load ДатаОстатков, Количество   
resident таблица1;

как-то так

AlfaLucky

Извиняюсь за свою безграмотность, как я не пробовал у меня не получается, можете помочь внедрить вашу часть кода

TEST:
SQL SELECT

KATMC.NREC as KATMC_NREC,
KATMC.NAME as KATMC_NAME,
KATMC.BARKOD as KATMC_BARKOD,
KATMC.CGROUPMC as KATMC_CGROUPMC,
KATMC.KGROUPMC as KATMC_KGROUPMC,
KATMC.CED as KATMC_CED,
SALDOMC.CMC as SALDOMC_CMC,
SALDOMC.KOL as SALDOMC_KOL,
SALDOMC.DSALDO as SALDOMC_DSALDO,
SALDOMC.SP as SALDOMC_SP,
SALDOMC.VPRICE as SALDOMC_VPRICE,
SALDOMC.SRPRICE as SALDOMC_SRPRICE,
KATED.NAME as UCH_ED_NAME,
KATPODR.NREC as KATPODR_NREC,
KATPODR.NAME as KATPODR_NAME



FROM BD.KATPODR, BD.SALDOMC, BD.KATMC, BD.KATED where
(
SALDOMC.DSALDO >= '132251905' and
SALDOMC.SP = '0' and
SALDOMC.CPODR = KATPODR.NREC and
KATMC.NREC = SALDOMC.CMC and
KATMC.CED = KATED.NREC and
KGROUPMC LIKE '100115%'
 );
 
STORE * from TEST into TEST.qvd(qvd);
DROP Table TEST;

TEST:
LOAD   
    Date(Mod(SALDOMC_DSALDO,256)&'.'&Div(Mod(SALDOMC_DSALDO,65536),255)&'.'&Div(SALDOMC_DSALDO,65535),'DD.MM.YYYY') as ДатаОстатков,
    month(Date(Mod(SALDOMC_DSALDO,256)&'.'&Div(Mod(SALDOMC_DSALDO,65536),255)&'.'&Div(SALDOMC_DSALDO,65535),'DD.MM.YYYY')) as МесяцОстатков,
    SALDOMC_DSALDO as ИсходнаяДата,
KATMC_NAME as Матценности,
KATMC_BARKOD as Баркод,
SALDOMC_KOL as Количество,
SALDOMC_SP as СкладПроизводство,
UCH_ED_NAME as EдиницыИзмерения,
KATPODR_NAME as Подразделение,
SALDOMC_VPRICE as СредняяЦенаВВалюте,
SALDOMC_SRPRICE as СредняяЦена,
SALDOMC_KOL*SALDOMC_SRPRICE as Стоимость


FROM
$(vDirectory)TEST.qvd
(qvd);
STORE * from TEST into TEST.qvd(qvd);

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