2011-01-07 5 views
2

お客様のお金がどれくらいの金額で一定の基準を満たした日を見つけるのが難しいです。SUMから日付を探す

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

しかし、私は、例えばのために見つけることができるようにする必要があります:私はこのような単純なクエリを実行し、どのくらい彼らが作った合計金額を決定するために

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  

顧客が総額で100ドルを当てた日付。

ご協力いただきまして誠にありがとうございます。ありがとう!

答えて

0

SELECT CUSTOMER_IDを持つようなもの、合計を持つCUSTOMER_ID BYテーブルのグループから合計としてSUM(量)> 100

+0

フム、私は合計で$ 100以上を持っている顧客を返すと思います。私は彼らが$ 100を打った正確な日付を見つける必要があります。顧客が今日合計金額が150ドルであれば、100ドルを超えた日付を見つける必要があります。 –

1

ジェシー、

私はあなたが "のバージョンを探していると信じて「合計」計算を実行します。

calculate-a-running-totalを参照してください。 そこには便利なリンクがたくさんあります。

この記事には、再利用できるコードがたくさんあります:http://www.sqlteam.com/article/calculating-running-totals

+0

ありがとう、これは多くの助けになりました。 –

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 
関連する問題