2011-01-07 10 views
2

Ich habe Probleme zu finden, welches Datum meine Kunden eine bestimmte Schwelle in wie viel Geld sie treffen.Suche nach einem Datum aus einem 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  

Um zu bestimmen, wie viel Gesamtmenge sie habe ich eine einfache Abfrage wie folgt auszuführen:

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

Aber ich brauche für beispielsweise zu finden in der Lage sein das Datum, an dem ein Kunde einen Gesamtbetrag von 100 $ erreicht.

Jede Hilfe wird sehr geschätzt. Vielen Dank!

Antwort

0

So etwas wie Klausel mit

SELECT customer_id, SUM (Betrag) als Summe aus Tabelle GROUP BY customer_id mit insgesamt> 100

+0

Hm, ich denke, dass die Kunden nur zurückgibt, die in einer Gesamtmenge mehr als $ 100 haben. Ich muss das genaue Datum finden, an dem sie $ 100 erreicht haben, dh. Wenn ein Kunde heute 150 US-Dollar im Gesamtbetrag hat, muss ich herausfinden, dass er 100 US-Dollar überschritten hat. –

0

Ich bin mir nicht sicher, ob MySQL Unterabfragen unterstützt, so nehmen diese mit einem Körnchen Salz:

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 
Verwandte Themen