2016-09-06 3 views
1

У меня возникли проблемы с разработкой логики для этого маленького сценария. В принципе у меня есть набор данных, и он хранится в неделях года и каждую неделю данные прошлой недели удаляются из набора данных. Что мне нужно сделать, это скопировать данные прошлых недель до их удаления из набора данных, а затем добавить его обратно после его удаления. Так, например, если сегодня неделя 33, мне нужно сохранить это, а затем на следующей неделе добавить его обратно. Затем на следующей неделе мне нужно взять 34-ю неделю и сохранить это, чтобы добавить в течение 35-й недели. На картинке лучше, чем тысяча слов так вот оно.Вставка удаленных данных обратно в набор данных с использованием таблицы temp. Qlikview

enter image description here

Как вы можете видеть, что я нужен минимум неделю из набора данных, прежде чем добавить данные предыдущих недель. Реальная проблема, которую я нахожу, заключается в том, что набор данных можно повторно запускать более одного раза в неделю, поэтому мне нужно будет сохранить временные данные до следующей недели, извлекая набор данных «Минимальные недели».

Это более логично, я здесь ... Надеюсь, это имеет смысл и спасибо в Advance.

ответ

1

QVD - это путь вперед! Хотя, может быть, и не как другой (очень хороший) ответ.

--Load of data from system 
Test:  
Load * 
, today() as RunDate 
From SourceData 

--Load of data from QVD 
Test: 
Load * 
From Test.QVD 

--Store current load into QVD 
Store Test into Test.QVD 

Таким образом, у вас есть только один QVD данных, который постоянно расширяется.

Некоторые предупреждения

  • Вам нужно будет иметь в виду, что отчет выполняется несколько раз в неделю, так что вам нужно будет обслуживать дублированию загрузки данных.
  • Загрузка QVD не зашифрована, поэтому ваши данные где-то в безопасности
  • при загрузке с QVD и затем перезаписывании, если что-то пойдет не так (загрузка не удалась), вам необходимо восстановить QVD, поэтому убедитесь, что ваша резервная копия решение соответствует задаче.

Я также добавил поле RunDate, чтобы вам было легче разбираться при просмотре, поскольку это дает вам тот же раскол, что и хранение в отдельных QVD.

1

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

логика будет что-то вроде ниже ...

Первый бежать (неделю 34 за неделю 33 данные):

  • Получить данные за предыдущую неделю
  • магазина в файл правильно датировано - например, 2016-33 за неделю 33 2016
  • Падения этой таблицы
  • загрузить все QVDs (в данном случае только 1)

На следующей неделе выполнения (недели 35 за неделю 33 & 34 данных):

  • Получить данные на предыдущую неделю
  • Хранить в файле правильно датированный - напр. 2016-34 за неделю 34 2016
  • Падение эту таблицу
  • нагрузки все QVDs (в данном случае 2)

Повторите работать на следующей неделе (35 недели за неделю 33 & 34 снова данные):

  • Получить данные на предыдущую неделю
  • Хранить в файле правильно датированный - напр. 2016-34 за неделю 34 2016 (на этот раз перепишет его)
  • Сбросьте этот стол
  • Загрузить все QVDs (в данном случае 2)

Sensible именования файлов решить проблему, но если вы на самом деле на самом деле необходимо проверить данные, чтобы проверить номер недели, вам нужно будет сначала загрузить все существующие QVD, запросить минимальный номер недели и, возможно, оттуда оттуда.

+0

Оцените ответ. Проблема с решением заключается в том, что он в конечном итоге накапливается до горы QVD, которая не идеальна. Кроме того, я забыл упомянуть, что после того, как неделя 35 была запущена и добавлена ​​неделя 34, данные недели 33 больше не требуются. И, чтобы бросить еще один гаечный ключ в работах QVW, теоретически можно запускать несколько раз в неделю не только неделю. Это не нормально, но может случиться. – TechCowboy

+0

Если вы не хотите предыдущие недели, вы можете легко удалить QVD, которые вам больше не нужны, используя «выполнить cmd/r c: \ path \ to \ qvd.qvd» и просто сохранить 2, которые вы хотите. Опять же, если их называют разумно, это должно быть довольно просто. Я не уверен, что вы подразумеваете под «бегом несколько раз в неделю, а не только за неделю», извините. – x3ja

+0

То, что я намеревался напечатать, было, когда я сказал, что «выполняйте несколько раз в неделю не только неделю», так это то, что QVW можно запускать несколько раз в неделю не один раз в неделю. – TechCowboy

Смежные вопросы