我有两个表:客户和操作,每个客户都有唯一的ID(可以在每个表中找到)。
部分客户在特定日期成为俱乐部会员(客户之间的变更)。我试图总结他们的购买直到那个日期,并让那些购买超过(例如)200的人直到他们成为俱乐部会员。
例如,我可以拥有以下客户:
custID purchDate purchAmount
1 2015-05-12 100
1 2015-07-12 150
1 2015-12-29 320
现在,假设custID = 1在2015-12-25成为俱乐部会员;在这种情况下,我想获得SUM(purchAmount)=250
(注意我希望得到这个客户,因为250> 200)。
我尝试了以下内容:
SELECT cust.custID, SUM(purchAmount)totAmount
FROM customers cust
JOIN actions act
ON cust.custID=act.custID
WHERE act.clubMember=1
AND cust.purchDate<act.clubMemberDate
GROUP BY cust.custID
HAVING totAmount>200;
这是&#34;攻击的正确途径&#34;这个问题,或者我应该使用像这样的东西,而循环在clubMemberDate上(说实话 - 我不知道该怎么做)?
我正在与Teradata合作。
我们将不胜感激。