4 Replies Latest reply: Jul 30, 2014 6:24 AM by Дмитрий Бабич RSS

    Пара новичковых вопросов.

      Добрый день.  Собственно только начинаю осваивать продукт, вот такие вот появились вопросы:

      1.

      Загружается пачка екселевских файлов, с названиями: Город.xlsx и столбцами (например) 

      "покупки", "продажи", "дата".

      Можно ли как-то собрать их в одну табличку со столбцами

      "Город", "покупки", "продажи", "дата" ?

      Т.е. как-то вытащить имя файла и загрузить его, как значение столбца.

       

      2. (к первому никак не относится). Можно ли как-то сгруппировать таблицу, по 2м столбцам, из получившейся выкинуть строки по какому-либо условию и снова её разгруппировать, пользуясь тем,что осталось?

       

      Заранее благодарю, за любую помощь.

        • Re: Пара новичковых вопросов.
          Andrei Kaliahin

          Добрый день,

           

          1. В загрузочном скрипте необходимо дописать:

           

          Таблица1:

          LOAD

               Покупки,

               Продажи,

               Дата,

               left(filename(),index(filename(),'.xls')-1) as Город  // не важно будет ли это файл xls или xlsx

          FROM .... xlsx;

          concatenate //аналог операции UNION из SQL

          LOAD

               Покупки,

               Продажи,

               Дата,

               left(filename(),index(filename(),'.xls')-1) as Город

          FROM .... xlsx;

          и т.д при загрузке файлов. Если имена столбцов будут идентичны и не используется инструкция QUALIFY, то Qlikview выполнит  Concatenate автоматически.

          В итоге получится одна таблица с 4 столбцами.

           

          2. Не совсем понял, что Вы имеете ввиду. Группировка полей подразумевает выполнение агрегации или нет?

          Опишите более конкретный пример что Вы хотите получить, на таких-то исходных данных.

           

          Всего доброго,

          Андрей Калягин

            • Re: Пара новичковых вопросов.

              1.Спасибо!

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

              2. Да агрегация предполагается.

              Есть поля : ФИО, Время начала, Время окончания, чистое время, тип операции... и куча других столбцов.

              Т.е. человек фиксирует время, когда начал работу, выполняет разные операции различных типов(фиксируя время их выполнения) затем фиксирует конец работы.

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

              и Суммой 'чистое времябудет >10.

              Т.е. на этом этапе вроде всё получается,

              "..where avg(nach_vrem-kon_vrem)-sum(chist_vrem)<10

              group by ФИО, Время начала;


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

              И вот тут я в тупике.