Я сопоставляю значения сумм из table1
и table2
, таблицы имеют дубликаты и различное количество строк. Любая сумма может быть сопоставлена только один раз (поэтому не так, как работает стандартный выбор), потому что общая сумма в выборе для таблицы должна оставаться такой же, как если бы я добавил все вставленные значения из этой таблицы.
CREATE TABLE table1 (
table1_amount int
);
INSERT INTO table1 (table1_amount)
VALUES
(22),
(11),
(35),
(45),
(45),
(65),
(22),
(22),
(878),
(56);
CREATE TABLE table2 (
table2_amount int
);
INSERT INTO table2 (table2_amount)
VALUES
(324),
(43),
(34),
(35),
(22),
(22),
(12),
(35),
(6);
Стандартный метод выбора возвращает 6 строк, соответствующих трем «22» из table1
, двум «22» из table2
(поэтому каждое «22» из table1
сопоставляется дважды):
SELECT table1.table1_amount, table2.table2_amount
FROM table1 FULL OUTER JOIN table2 ON table1.table1_amount=table2.table2_amount;
table1_amount table2_amount
22 22
22 22
22 22
22 22
22 22
Теперь я хотел бы иметь только 2 совпадения + 1 непревзойденную сумму из table1
, поэтому:
table1_amount table2_amount
22 22
22 22
22 NULL
Как ты можешь это сделать? Я указываю здесь SQL, но любое решение (Excel, Access) было бы хорошо.