Добрый день, с толкнулся с проблемой нахождения остатков на конец каждого месяца, есть таблица с складскими остатками за последние полгода, нужно найти остатки на конец каждого месяца.
(https://qliksense-forum.ru/qvf/proxy.php?request=http%3A%2F%2Fc2n.me%2F40NUD2l&hash=d8441324c64d934e7df386da7bda26ab7728950c)
Матценности ДатаОстатков Количество 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 кг
Т.е. требуется добавить дату для конца месяца и перенести соответствующий остаток?
Должны выводить близкие к концу месяца остатки.
Вот пример выходных данных.
Матценности ДатаОстатков Количество 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 кг
Делаете запрос на максимальную дату в каждом месяце, и джойните к этой дате запись остатка.
tmp1:
noconcatenate
load max(ДатаОстатков) as ДатаОстатков
resident таблица1
group by month(ДатаОстатков);
left join таблица1 load ДатаОстатков, Количество
resident таблица1;
как-то так
Извиняюсь за свою безграмотность, как я не пробовал у меня не получается, можете помочь внедрить вашу часть кода
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);