2016-02-26 113 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) 
    ; 

之後,所有操作都按預期工作。