将 csv 文件中的新信息附加到现有的历史 qvd
append new information in csv files to existing historical qvd
假设我有一个名为 salesHistory.qvd 的 "master" qvd 文件,我想从文件 salesMarch.csv
追加新的月度销售额
如何在不替换现有信息但添加新月份的情况下做到这一点?
感谢您的帮助!
默认情况下,如果字段相同,QlikView 会自动将 table 加载附加到先前加载的 table。您可以通过使用类似于以下的脚本来利用它:
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
文件的内容加载到 table,然后加载 salesMarch.csv
的内容并将其连接到 SalesHistory
table(其中包含 salesHistory.qvd
.
的内容
最后的 STORE
步骤通过完全覆盖将这个连接的 table 保存到 salesHistory.qvd
文件中。
在上面的示例中,我们使用 *
作为字段说明符从源文件中加载 所有 字段。这意味着此方法仅在您的 QVD 文件包含与 CSV 文件相同的字段(和字段名称)时才有效。
此外,由于此脚本每次执行时都会加载 QVD 文件的内容,因此如果每月执行一次以上,它将开始复制数据,因为无法确定哪些月份已经存在于QVD 文件。如果您需要每月执行一次以上(可能是由于调整),那么您可能希望考虑将 WHERE
子句应用于从 salesHistory.qvd
加载,以便仅包含前一个数据月已加载。
最后,您可能希望更改 CSV 文件的名称,使其始终相同(例如 salesCurrentMonth.csv
),这样您就不必更改脚本中的文件名。
假设我有一个名为 salesHistory.qvd 的 "master" qvd 文件,我想从文件 salesMarch.csv
追加新的月度销售额如何在不替换现有信息但添加新月份的情况下做到这一点?
感谢您的帮助!
默认情况下,如果字段相同,QlikView 会自动将 table 加载附加到先前加载的 table。您可以通过使用类似于以下的脚本来利用它:
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
文件的内容加载到 table,然后加载 salesMarch.csv
的内容并将其连接到 SalesHistory
table(其中包含 salesHistory.qvd
.
最后的 STORE
步骤通过完全覆盖将这个连接的 table 保存到 salesHistory.qvd
文件中。
在上面的示例中,我们使用 *
作为字段说明符从源文件中加载 所有 字段。这意味着此方法仅在您的 QVD 文件包含与 CSV 文件相同的字段(和字段名称)时才有效。
此外,由于此脚本每次执行时都会加载 QVD 文件的内容,因此如果每月执行一次以上,它将开始复制数据,因为无法确定哪些月份已经存在于QVD 文件。如果您需要每月执行一次以上(可能是由于调整),那么您可能希望考虑将 WHERE
子句应用于从 salesHistory.qvd
加载,以便仅包含前一个数据月已加载。
最后,您可能希望更改 CSV 文件的名称,使其始终相同(例如 salesCurrentMonth.csv
),这样您就不必更改脚本中的文件名。