Я делаю запрос на соединение слева, чтобы сравнить две таблицы для любых значений, которые не равны друг другу ТОЛЬКО в столбцах f9 и sumoff6, если столбцы F1 совпадают. Если они разные, я бы хотел вычесть их.
Результаты, которые я получаю, показывают одинаковые значения, которые уже есть в обеих таблицах. Мне нужно, чтобы столбцы f1 совпадали в обеих таблицах, но если их значения в столбцах sumoff6 и f9 не совпадают, отобразите их и вычтите их. F1 уникален на обеих таблицах. Имейте в виду, что в таблице операторов может быть больше строк. Я использую MS Access SQL view.
Запрос
SELECT statement.f1, statement.f9
FROM statement
LEFT JOIN allocation_final ON statement.[f1] = allocation_final[f1]
WHERE [allocation_final].sumoff6 <> statement.f9
Таблица выписок:
f1 f9
-----------------
1 135.58
2 166.30
3 40.22
4 86.46
5 170.33
6 96.40
allocation_final:
f1 SumOff6
--------------
1 135.58
2 166.30
3 40.00
4 86.46
5 170.33
6 40.22
7 22.40
8 70.00
9 96.40
10 50.00
Результаты
f1 f9
--------------
1 135.58
2 166.3
4 86.46
5 170.33
Обновление:
Результат, который я хочу получить, если f1 = f3 и f3 <> sumoff6, то отобразить вывод. Как вы видите ниже, например, он все равно возвращает результат, если он такой же Посмотрите на первый ряд, которого там быть не должно, потому что f9 = sumoff6.
запрос:
SELECT statement.f1, statement.f9, allocation_2.[f3], allocation_2.sumoff6
FROM allocation_2 LEFT JOIN statement ON allocation_2.[f3]=statement.f1
WHERE statement.f9 <> allocation_2.sumoff6
GROUP BY statement.f1, statement.f9, allocation_2.[f3], allocation_2.sumoff6
ORDER BY statement.f1;
Выход:
f1 f9 f3 sumoff6
--------------------------------------
123456789 135.58 123456789 135.58
111111111 166.3 111111111 66.3
222222222 86.46 222222222 86.46
333333333 170.33 333333333 170.33
444444444 135.58 444444444 35.58
555555555 125.74 555555555 125.74
666666666 73.49 666666666 23.49
777777777 187.99 777777777 87.99