使用 temp table 将删除的数据重新插入数据集。 Qlikview

Inserting deleted data back into dataset using temp table. Qlikview

我无法理解这个小场景的逻辑。基本上我有一个数据集,它存储在一年中的几周内,每周都会从数据集中删除前几周的数据。我需要做的是在从数据集中删除之前复制前几周的数据,然后在删除后将其添加回去。因此,例如,如果今天是第 33 周,我需要保存它,然后下周将其添加回去。然后下周我需要将第 34 周保存下来,以便在第 35 周添加。一张图片比一千个单词更能说明问题所以在这里。

如您所见,在添加前几周的数据之前,我需要数据集中的最小周数。我发现的真正问题是数据集每周可以重新运行不止一次,因此我需要将临时数据集保留到下周,同时提取最小周数数据集。

我在这里更合乎逻辑...希望它有意义并提前致谢。

听起来您应该将数据存储到每周 QVD 文件中作为提取过程的一部分,然后将生成的文件载入。

逻辑如下所示...

第一个 运行(第 34 周的第 33 周数据):

  • 获取前一周的数据
  • 正确日期地存储到文件中 - 例如2016 年第 33 周的 2016-33
  • 放弃这个 table
  • 加载所有 QVD(在本例中只有 1 个)

下周 运行(第 33 周和第 34 周数据的第 35 周):

  • 获取前一周的数据
  • 正确日期地存储到文件中 - 例如2016 年第 34 周的 2016-34
  • 放弃这个 table
  • 加载所有 QVD(在本例中为 2)

下周重复 运行(第 35 周再次获取第 33 周和第 34 周的数据):

  • 获取前一周的数据
  • 正确日期地存储到文件中 - 例如2016 年第 34 周的 2016-34(这次覆盖)
  • 放弃这个 table
  • 加载所有 QVD(在本例中为 2)

合理的文件命名解决了这个问题,但如果你真的需要检查数据来检查周数,你可能需要先加载所有现有的 QVD,查询最小周数并从那里获取它。

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 中相同的拆分。