SQL-sum超过动态时期

时间:2016-07-19 18:26:01

标签: sql teradata

我有两个表:客户和操作,每个客户都有唯一的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合作。

我们将不胜感激。

0 个答案:

没有答案