4 Replies Latest reply: Dec 28, 2016 6:20 AM by Владислав Коробов RSS

    Группировка периода

    Владислав Коробов

      Коллеги, нужна помощь.

      Есть таблица продаж с датами.

      Но период нужно сгруппировать так:

      например сегодня 25.12.2016

      тогда год будет равен: 25.12.2016 - 25.12.2015 - это соответсвенно 2016, далее 25.12.2015 - 25.12.2014 - это 2015 и т.д

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

       

      Дата отчета будет выбираться и от нее нужно вести все расчеты, ну это уже в идеале, а главное сгруппировать все данные как я описал выше

        • Re: Группировка периода
          Vladimir Kochetov

          Привет.

          Если это нужно/можно рассчитать на этапе загрузки, то можно вот так (частный случай для 2016 и 2017 годов):

          SET v_TodayVirtual_D = '04.01.2017';

          LET v_TodayVirtual_N = Num(v_TodayVirtual_D);

          LET v_DayFirst2017 = '01.01.2017';

          LET v_DayCount = v_TodayVirtual_D - v_DayFirst2017 + 1;

           

          Data:

          LOAD * Inline [

          NN,        DATE,            PRICE,    Q

          1,        29.12.2016,        50,        2

          2,        30.12.2016,        10,        52

          3,        31.12.2016,        1,        1

          4,        01.01.2017,        2,        60

          5,        02.01.2017,        80,        1

          6,        03.01.2017,        400,    3

          7,        04.01.2017,        55,        45

          ];

          STORE * from Data into Data.qvd (qvd);

          DROP Table Data;

           

          Data:

          LOAD NN,

              DATE,

              PRICE,

              Q,

              Year(DATE) as YEAR_REAL,

              If (DATE >= '$(v_DayFirst2017)', Year(DATE), If (DATE + $(v_DayCount) >= '$(v_DayFirst2017)', Year(DATE + $(v_DayCount)))) as YEAR_VIRTUAL

          FROM Data.qvd (qvd);

           

          Если, это нужно рассчитать в дашборде, то нужно делать справочник периодов. То есть, для каждого дня, должно соответствовать 365 дней в справочнике периодов.

          • Re: Группировка периода
            Anna Klimkova

            Владислав,

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

            Создайте переменную vToday    =num(Today()) 

            А в диаграмме заменяем измерение Год на вычисляемое измерение

            = yearДата +
            YearEnd(Дата) - AddYears(vToday, -Year(vToday)+Year(Дата))
            )