Qlikview STORE INTO qvd的语法问题

时间:2016-02-26 20:58:17

标签: qlikview

我始终无法将数据存储到QVD文件中。我一直使用的语法在其他应用程序中运行得很好,但由于某种原因,我无法在我试图完成的应用程序中使用它。

我已经成功开发了一个数据模型,现在需要多年循环,减少特定年份的数据,然后将其保存到单个QVD文件中。

以下是代码:

FOR i = $(vL.MinFY) TO $(vL.MaxFY)
  LET _table = 'T_FACT_$(i)_GL_BALANCES';

  [$(_table)]:
  LOAD
    *
  RESIDENT [FINAL BALANCES]
  WHERE LEFT([Year-Period],4) = $(i) 
  ;

  IF NoOfRows('$(_table)') > 0 THEN
    STORE $(_table) INTO [$(vG.TransformQVDPath)$(_table).QVD];
  END IF 

  LET vRowCount_$(i) = NoOfRows('$(_table)');
  DROP TABLE [$(_table)];
NEXT

脚本在DROP TABLE语句上打嗝,没有任何内容保存到QVD。我尝试了各种美元符号扩展的组合,有和没有引号,括号等。

希望有人能帮助我确定我所缺少的东西。

1 个答案:

答案 0 :(得分:1)

DOH!想出来了。

LOAD语句需要NOCONCATENATE,否则表的每次迭代都只是与源表连接在一起。加载部分的更新脚本是:

  [$(_table)]:
  NOCONCATENATE LOAD
    *
  RESIDENT [FINAL BALANCES]
  WHERE LEFT([Year-Period],4) = $(i) 
  ;

完成后,一切都按预期工作。