Я работаю в Oracle SQL. Предположим, у меня есть таблица, в которой перечислены следующие.Oracle SQL - Сравнение нескольких строк с датами
ТАБЛИЦА
PurchaseID CustID Location Date
1 1 A 8/23/2013 12:00:00 AM
2 1 B 8/15/2013 12:00:00 AM
3 2 A 5/15/2013 12:00:00 AM
4 2 B 1/01/2005 12:00:00 AM
5 3 A 1/15/2001 12:00:00 AM
6 3 A 1/30/2001 12:00:00 AM
7 3 B 8/23/2013 12:00:00 AM
8 4 A 5/05/2012 12:00:00 AM
9 4 B 8/15/2010 12:00:00 AM
10 4 A 9/20/2008 12:00:00 AM
Я пытаюсь написать запрос, который сравнивает покупку клиента, так что выход каждый случай, когда конкретный клиент делает покупку в два разных местах в течение 2-х лет друг от друга , Я особенно расстроен в случаях CustID = 3 и CustID = 4, где есть сложные комбинации местоположения/даты. Результат запроса должен выглядеть следующим образом.
PurchaseID CustID Location Date
1 1 A 8/23/2013 12:00:00 AM
2 1 B 8/15/2013 12:00:00 AM
8 4 A 5/05/2012 12:00:00 AM
9 4 B 8/15/2010 12:00:00 AM
10 4 A 9/20/2008 12:00:00 AM
В выводе, покупки CustID = 1 возвращаются, потому что они находятся в разных местах в течение 2 лет друг от друга. CustID = 2 выбрасываются, потому что они не в течение 2 лет. CustID = 3 имеет две покупки в течение 2 лет друг от друга, но они выбрасываются из-за того, что они находятся в одном месте. И покупки CustID = 4 хранятся, потому что Покупки 8 и 9 находятся в пределах 2 лет и в разных местах, а 9 и 10 находятся в пределах 2 лет и в разных местах (я хочу, чтобы они были сохранены, несмотря на то, что 8 и 10 находились в одном месте и не в течение 10 лет).
Примечание: столбец «Дата» имеет тип данных «Дата» Oracle SQL 'Date.
Как всегда, любая помощь/руководство будет принята с благодарностью.
Спасибо, отлично работает! – user1895076