我正在使用 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 的“日期”数据类型。
与往常一样,我们将不胜感激任何帮助/指导。