0

我正在使用 Oracle SQL。我有两张桌子。一个有 ItemID 和 DatePurchased,另一个有 ItemID、CustomerID。我正在尝试加入这些表格,以便我只能看到那些拥有多个项目的客户。

换句话说,如果我有:

TABLE 1
ItemID---DatePurchased
   1         MAR15
   2         JUN10
   3         APR02

TABLE 2
ItemID---CustomerID
  1          1
  2          1
  3          2

我希望这个返回:

TABLE 3
ItemID--DatePurchased--CustomerID
  1          MAR15         1
  2          JUN10         1

(客户 2 被排除在外,因为他只有一件商品 (ItemID=3))。

关于如何在 SQL 中执行此操作的任何想法?

4

2 回答 2

1
select
    T2.ItemID, T2.CustomerID, T1.DatePurchased
from TABLE2 as T2
    inner join TABLE1 as T1 on T1.ItemID = T2.ItemID
where
    T2.CustomerID in
    ( 
        select TT.CustomerID
        from TABLE2 as TT
        group by TT.CustomerID
        having count(*) > 1
    )
于 2013-08-22T17:46:29.467 回答
1
select ItemID, DatePurchased, CustomerID
from
 (
   select
      T1.ItemID, T1.DatePurchased, T2.CustomerID, 
      count(*) over (partition by T2.CustomerId) as ItemCnt
   from TABLE2 T2
      join TABLE1 T1 on T1.ItemID = T2.ItemID
 ) dt
 where ItemCnt > 1
于 2013-08-22T18:58:57.483 回答