Я хочу выполнить Group BY
для двух файлов CSV, а затем выполнить левое соединение для результатов обеих таблиц через VBA ADO Query в Excel. Мой конечный мотив - распечатать набор записей.
Вот что я сделал до сих пор.
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]
Это показывает синтаксическую ошибку. Как это реализовать? Буду признателен за любую оказанную помощь. ТИА.
Обновление -
Мне удается реализовать 1 LEFT JOIN
и 2 GROUP BYs
между 2 таблицами. Согласно запросу, вот несколько деталей относительно моего набора данных.
Он состоит из полей - c1, c2 .... c8.
с8 - моя цель
Мой ожидаемый результат - мне не нужны c7, c1 и c2 в выходном листе. Информация о c7, c1 и c2 не имеет значения. Мне нужно сделать 5 вещей с моими данными.
Группировать Суммирование поля c8 на основе полей c3, c4, c5 и c6 в CSV-файле 1 и сохранять целевое поле как SUMDATA
Группировка Суммируйте поля c8 на основе полей c3, c4, c5 и c6 в CSV-файле 2 и сохраняйте поле назначения как SUMDATA
Найдите несовпадающие записи в полях SUMDATA между CSV1 и CSV2 (я использовал LEFT JOIN
для этого в объединенных полях c3, c4, c5, c6)
Найти записи, которые присутствуют в CSV1, но отсутствуют в CSV2
Найти записи, которые присутствуют в CSV2, но отсутствуют в CSV1
В настоящее время мне удается написать код, который работает до шага 3. Мне нужно временно сохранить сгруппированные таблицы, полученные из шагов 1 и 2, чтобы выполнить шаги 4 и 5, что можно сделать еще через 2 UNION
, LEFT JOINs
и WHERE
комбинация. Вот где я застрял прямо сейчас.