我有多个按约定命名的文件:“data_YYYY.MM.xslx”我需要将所有这些文件加载到一个 qlikview 表中,但是当我这样做时:
Tab:
load Name, Number from [data_*.csv];
我得到每个文件的 Tab、Tab-1、Tab-2 文件。
我也尝试过:
Tab:
add load Name, Number from [data_*.csv];
具有相同的效果。
如果有人知道如何做到这一点,请帮助。
我有多个按约定命名的文件:“data_YYYY.MM.xslx”我需要将所有这些文件加载到一个 qlikview 表中,但是当我这样做时:
Tab:
load Name, Number from [data_*.csv];
我得到每个文件的 Tab、Tab-1、Tab-2 文件。
我也尝试过:
Tab:
add load Name, Number from [data_*.csv];
具有相同的效果。
如果有人知道如何做到这一点,请帮助。
这个问题没有任何意义,除非你省略了一些细节。
QlikView将通过如下语句将所有数据隐式附加到原始表“Tab”:
选项卡:从 [data_*.csv] (txt) 加载名称、编号;
请注意括号中指定的文件格式。
每当使用与已创建的表完全相同的字段名称加载表时,就会隐式地附加数据。因此,在您的示例中,遇到的第一个文件构成了该文件中的数据负载。假设确实根据您的问题引用了字段名称,则结果表中应包含两个字段:“名称”和“编号”。当通过通配符匹配遇到第二个文件时,将进行第二次加载,并将该数据附加到表“Tab”中。
如果您不希望依赖隐式连接(用于将数据附加到现有表的 QlikView 术语),那么您可以编写一个 FOR 循环来加载您的文件,而不是使用显式 CONCATENATE 加载前缀指向您希望将数据附加到的表.
例如
// QV 技巧来“声明”一个表
标签: LOAD null() AS Name AUTOGENERATE(1) WHERE RecNo() < 0;
对于文件列表中的每个文件('data_*.csv')
CONCATENATE('Tab') 加载 * FROM [$(file)] (txt);
下一个文件
这个技巧对我有用:
tmp:
LOAD @1 inline [@1];
Tab:
Concatenate load Name, Number from [data_*.csv];
你可以这样做:
Load * from data_*.csv;
只需在文件名中使用掩码。
为了完整性,一种循环方式(这里使用 qvd 文件):
FOR Each db_schema in '2013-07','2013-08','2013-09'
LOAD ...., db_schema
FROM `x-$(db_schema)`.`qvd` (qvd);
next;
(知道名字。)
如果文件名不同,这是另一种方法
选项卡:从 [data_1.csv] 加载名称、编号;join (Tab) 从 [data_2.csv] 加载名称、编号;