Допустим, у нас есть две таблицы
Table A:
col_1, col_2, col_3, col4
04/04/2017 1800.00 200.00 B123
21/04/2017 1800.00 200.00 B123
14/09/2017 1200.00 300.00 B123
18/12/2017 1100.00 150.00 B123
21/01/2018 1100.00 150.00 B123
06/05/2017 2400.00 500.00 A345
Table B:
col_1, col_2, col_3, col4
05/04/2017 1800.00, 200.00 B123
12/09/2017 1200.00, 300.00 B123
20/12/2017 1100.00, 150.00 B123
08/05/2017 2400.00 500.00 A345
Я хочу сделать что-то вроде
select * from A
where (col_1, col_2, col_3, col_4)
not in (select +/- 2 days_of_col_1, col_2, col_3, col_4 from B.
Можно ли это сделать. если да, то как.
Заранее спасибо за помощь ...
РЕДАКТИРОВАТЬ: @ Гордон.
Скажем, таблица А имела дополнительные строки, как показано ниже
05/04/2017 1800.00 200.00 B123
05/04/2017 1800.00 200.00 B123
06/04/2017 1800.00 200.00 B123
это будет помечено как существующее. Я пытался использовать
count (*) OVER (PARTITION BY col_1, col_2 ORDER BY col_1, col_2) AS count_col_2,
count (*) OVER (PARTITION BY col_1, col_2 ORDER BY col_1, col_3) AS count_col_3
и поставить чек на счет, как в вашем решении. Это обнаруживает только одну и ту же дату нескольких записей.
Надеюсь, вы можете что-то предложить.
Еще раз спасибо