私は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年以内に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 年以内に 2 回購入していますが、同じ場所にあるため破棄されます。また、CustID=4 の購入は保持されます。これは、購入 8 と 9 が 2 年以内で別の場所にあり、9 と 10 が 2 年以内に別の場所にあるためです (8 と 10 が同じ場所にあり、 10年以内ではない)。
注: Date 列には、Oracle SQL 'Date' データ型があります。
いつものように、ヘルプ/ガイダンスは大歓迎です。