2016-02-26 111 views
1

我始终无法将数据存储到QVD文件中。我一直在使用的语法在其他应用程序中完美工作,但出于某种原因,我无法在我试图完成的应用程序中使用它。Qlikview的语法问题STORE INTO 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

DOH!弄清楚了。

LOAD声明需要NOCONCATENATE,否则表的每次迭代都与源表简单地连接。加载部分的更新脚本为:

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

之后,所有操作都按预期工作。