2011-01-07 66 views
2

我很难找到我的客户在多少钱上达到某个阈值的日期。从SUM找到一个日期

customer_id | Amount | created_at 
--------------------------- 
1134  | 10 | 01.01.2010  
1134  | 15 | 02.01.2010  
1134  | 5 | 03.24.2010  
1235  | 10 | 01.03.2010  
1235  | 15 | 01.03.2010  
1235  | 30 | 01.03.2010  
1756  | 50 | 01.05.2010  
1756  | 100 | 01.25.2010  

要确定他们多么总量搞得我像这样运行一个简单的查询:

SELECT customer_id, SUM(amount) 
FROM table GROUP BY customer_id 

但我需要能够找到例如客户的总金额达到100美元的日期。

任何帮助,非常感谢。谢谢!

回答

0

喜欢的东西having子句

SELECT CUSTOMER_ID,SUM(数量)总FROM表GROUP BY有总计> 100

+0

嗯,我认为只会返回在总金额超过$ 100的客户。我需要找到确切的日期,他们达到100美元,即。如果客户今天的总金额是150美元,那么我需要找到他们约会100美元的日期。 – 2011-01-07 16:18:07

0

我不知道如果MySQL支持的子查询,所以借此与一粒盐:

SELECT customer_id 
     , MIN(created_at) AS FirstDate 
FROM (SELECT customer_id 
        , created_at 
        , (SELECT SUM(amount) 
         FROM  [Table] t 
         WHERE  t.CustomerID = [Table].CustomerID 
           AND t.created_at <= [Table].created_at 
        ) AS RunTot 
      FROM  [Table] 
     ) x 
WHERE x.RunTot >= 100 
GROUP BY customer_id 
相关问题