Csv QlikView-从远程服务器加载特定文件

Csv QlikView-从远程服务器加载特定文件,csv,qlikview,Csv,Qlikview,我一直在努力解决这个问题,但现在我不得不请求你的帮助 我在本地PC上有一个QVD文件,名为server001_CPU.QVD,在远程服务器上,我与许多类型的文件共享文件夹。还有一些文件名为server001_CPU_YYYYMMDD.csv(例如server001_CPU_20140806.csv),它们每天生成,并且与本地qvd文件具有相同的结构。他们有专栏日期。我需要的是(在加载脚本中)检查本地文件中的最后一个日期,并加载从那天开始到今天的远程文件,然后将其连接在一起。大概是这样的: CPU

我一直在努力解决这个问题,但现在我不得不请求你的帮助

我在本地PC上有一个QVD文件,名为server001_CPU.QVD,在远程服务器上,我与许多类型的文件共享文件夹。还有一些文件名为server001_CPU_YYYYMMDD.csv(例如server001_CPU_20140806.csv),它们每天生成,并且与本地qvd文件具有相同的结构。他们有专栏日期。我需要的是(在加载脚本中)检查本地文件中的最后一个日期,并加载从那天开始到今天的远程文件,然后将其连接在一起。大概是这样的:

CPU:
LOAD * FROM server001_CPU.qvd

LET vMAX = Max(DATE) FROM CPU

DO WHILE vMAX <= Today()

  CPU:
  LOAD * FROM serverpath/server001_CPU_$(vMAX).csv

LOOP
CPU:
从server001\u CPU.qvd加载*
让vMAX=来自CPU的最大(日期)

当vMAX时执行,您可以尝试下面的脚本片段,该脚本片段可以执行您需要的操作

这样做的目的是首先打开现有数据集(在QVD中),然后找到最长日期并将其存储在表
MaxCPUDate
中。然后将该最大值读入变量,并删除该表

然后从今天的日期中减去该“Max Date”值,以确定加载单个文件时要执行的循环数。循环变量被添加到“Max Date”值上,以创建要加载的文件名

CPU:
LOAD 
    *
FROM server001_CPU.qvd (qvd);

MaxCPUDate:
LOAD DISTINCT
    max(DATE) as MaxDate
RESIDENT CPU;

LET vMaxCPUDate = peek('MaxDate',-1,'MaxCPUDate');

DROP TABLE MaxCPUDate;    

FOR vFileNum = 0 TO (num(Today()) - $(vMaxCPUDate))

    LET Filename ='serverpath/server001_CPU_' & date($(vMaxCPUDate) + $(vFileNum),'YYYYMMDD') & '.csv';

    CONCATENATE (CPU)
    LOAD
        *
    FROM $(Filename) (txt, codepage is 1252, embedded labels, delimiter is ',', msq);

NEXT