我们说我有一个"主人" qvd文件名为salesHistory.qvd,我想从文件salesMarch.csv追加新的月度销售
如何在不替换现有信息的情况下实现这一目标,但又增加了新的月份?
感谢您的帮助!
答案 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
),这样您就不必更改脚本中的文件名。