将csv文件中的新信息附加到现有历史qvd

时间:2015-02-04 15:53:05

标签: qlikview

我们说我有一个"主人" qvd文件名为salesHistory.qvd,我想从文件salesMarch.csv追加新的月度销售

如何在不替换现有信息的情况下实现这一目标,但又增加了新的月份?

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

默认情况下,如果字段相同,QlikView会自动将表加载附加到先前加载的表。您可以使用类似于以下内容的脚本来利用此功能:

SalesHistory:
LOAD 
     *
FROM
[salesHistory.qvd] (qvd);

LOAD 
     *
FROM
[salesMarch.csv]
(txt, utf8, embedded labels, delimiter is ',', msq);

STORE SalesHistory INTO [salesHistory.qvd] (qvd);

这最初会将salesHistory.qvd文件的内容加载到表中,然后加载salesMarch.csv的内容并将其连接到SalesHistory表(其中包含{{{}}的内容1}}。

最后salesHistory.qvd步骤通过完全覆盖它将此连接表保存到STORE文件中。

在上面的示例中,我们使用salesHistory.qvd作为字段说明符来从源文件加载所有字段。这意味着只有当您的QVD文件包含与CSV文件相同的字段(和字段名称)时,此方法才有效。

此外,由于此脚本在每次执行时加载QVD文件的内容,如果每月执行多次数据,它将开始复制数据,因为无法确定QVD文件中已存在哪些月份。如果您需要每月执行多次(可能是由于调整),那么您可能希望考虑将*子句应用于来自WHERE的加载,以便只包含前一个数据,包括之前的数据月份已载入。

最后,您可能希望更改CSV文件的名称,使其始终相同(例如salesHistory.qvd),这样您就不必更改脚本中的文件名。