1 Reply Latest reply: Apr 19, 2015 4:03 PM by Sergey Polekhin RSS

    работа с таблицей данных

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

      Коллеги, нужна небольшая помощь, а точнее совет.

      Есть таблица данных вида:

      LeveldescrCount
      1Компания приветствует вас100
      2Какой у вас вопрос?75
      2Опишите суть25
      3Перевожу на менеджера15
      4Спасибо за обращение100

      И в итоге мне необходимо в QV построить таблицу в виде дерева, по уровню, примерно так:

      1. Первый уровень
        1. Второй уровень
          1. Третий уровень
            1. ...N уровень

      И напротив считать кол-во.

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

        • Re: работа с таблицей данных
          Sergey Polekhin

          Добрый день,

           

          В качестве варианта можно поступить так:

          1. Сформировать простейшую таблицу со смежными узлами, т.е. описывающую соотношение между уровнем родителя и уровнем потомка.
          2. Далее применить к этой таблице стандартную функцию загрузки и создания иерархии HIERARCHY LOAD.

           

           

          Итого, более детально:

           

          1. В вашем случае, для каждого из заданных уровней уровень родителя (Parent) можно рассчитать как Parent = Level - 1.


          TempTable1:

          LOAD Level - 1 as Parent,

                     Level as Child,

                     Descr,

                    Count

          Resident SourceData;

           

          и тем самым получаем итоговую таблицу вида:


          TempTable1:

          Parent Child Descr Count
          01Компания приветствует вас100
          12Какой у вас вопрос?75
          12Опишите суть25
          23Перевожу на менеджера15
          34Спасибо за обращение100

           

          2. Далее загружаем эту таблицу оператором HIERARCHY LOAD, с последующим удалением первичной временной таблицы, например, так:


          TempTable2:

          HIERARCHY(Child, Parent, Descr)

          LOAD Parent,

                    Child,

                    Descr,

                    Count

          Resident TempTable1;

           

          DROP Table TempTable1;

           

          и тем самым получаем итоговую таблицу вида:


          TempTable2:

          Parent Child Descr Count Descr1 Descr2 Descr3 Descr4
          01Компания приветствует вас100Компания приветствует вас
          12Какой у вас вопрос?75Компания приветствует васКакой у вас вопрос?
          12Опишите суть25Компания приветствует васОпишите суть
          23Перевожу на менеджера15Компания приветствует васКакой у вас вопрос?Перевожу на менеджера
          23Перевожу на менеджера15Компания приветствует васОпишите сутьПеревожу на менеджера
          34Спасибо за обращение100Компания приветствует васКакой у вас вопрос?Перевожу на менеджераСпасибо за обращение
          34Спасибо за обращение100Компания приветствует васОпишите сутьПеревожу на менеджераСпасибо за обращение

           

           

          Очевидно, что дальше просто создаем объект "Диаграмма" (с типом "Сводная таблица") и используем в качестве измерений созданные функцией HIERARCHY поля Descr1, Descr2, Descr3, Descr4.

          В качестве выражения используем необходимую вам функцию агрегации. В моем примере я использовал функцию Sum().


          Итоговый вариант сводной таблицы приведен на скриншоте ниже:


          ScreenShot_1.png


          Также присоединяю пример приложения.