【发布时间】:2019-02-05 13:01:19
【问题描述】:
我想对两个 csv 文件执行Group BY,然后通过 Excel 中的 VBA ADO 查询对两个表的结果执行左连接。我的最终目的是打印记录集。
这是我到目前为止所做的。
SELECT * FROM (
SELECT f1.[c3],
f1.[c4],
f1.[c5],
f1.[c6],
Sum(f1.[c8]) AS SUMDATA
FROM test1.csv F1
GROUP BY f1.[c3],
f1.[c4],
f1.[c5],
f1.[c6]) AS f3
LEFT JOIN SELECT * FROM (
SELECT f2.[c3],
f2.[c4],
f2.[c5],
f2.[c6],
Sum(f2.[c8]) AS SUMDATA
FROM test2.csv f2
GROUP BY f2.[c3],
f2.[c4],
f2.[c5],
f2.[c6]) AS f4
on f3.[c3]+ f3.[c4]+ f3.[c5]+ f3.[c6] = f4.[c3]+ f4.[c4]+ f4.[c5]+ f4.[c6]
WHERE f3.[SUMDATA] <> f4.[SUMDATA]
这显示了一个语法错误。如何实施?任何帮助深表感谢。 TIA。
更新 -
我设法在 2 个表之间实现 1 个LEFT JOIN 和 2 个GROUP BYs。根据要求,这里有一些关于我的数据集的细节。
它由字段 - c1、c2 .... c8 组成。
c8 是我的目标字段。
我的预期输出 - 我不需要输出表中的 c7、c1 和 c2。 c7、c1 和 c2 的信息无关紧要。我需要用我的数据做 5 件事。
根据 CSV 文件 1 中的 c3、c4、c5 和 c6 字段对 c8 字段进行分组求和,并将目标字段存储为 SUMDATA
根据 CSV 文件 2 中的 c3、c4、c5 和 c6 字段对 c8 字段进行分组求和,并将目标字段存储为 SUMDATA
在 CSV1 和 CSV2 之间查找不匹配的 SUMDATA 字段条目(我在串联的 c3、c4、c5、c6 字段上使用了
LEFT JOIN)查找 CSV1 中存在但 CSV2 中不存在的条目
查找存在于 CSV2 中但不存在于 CSV1 中的条目
目前,我设法编写了在第 3 步之前有效的代码。我需要临时存储从第 1 步和第 2 步获得的分组表,以执行第 4 步和第 5 步,这可以通过另外 2 步来完成 @987654326 @、LEFT JOINs 和 WHERE 组合。这就是我现在卡住的地方。
【问题讨论】:
标签: sql excel database vba adodb