2017-05-02 1 views
-1

Ich möchte Benutzer aus der Tabelle, die atleast insgesamt 20.000 $ kaufen in 50 Tagen haben.erhalten Benutzer, die insgesamt Kauf von bestimmten Betrag in bekannten Zeitraum hat

zum Beispiel -> ein Benutzer kann einen Service vor 200 Tagen mit 5.000 gekauft haben und kaufte einen anderen Service mit einem Betrag von 10.000 vor 180 Tagen und ein weiterer Service, den er gekauft hat, war vor 160 Tagen mit 5.000.

also die Zeit zwischen diesen sind weniger als 50 und Gesamtbetrag ist mindestens 20.000 dann ist er der Benutzer, der zurückgegeben werden sollte.

ein weiteres Beispiel -> ein Benutzer vor mehr Menge von 10.000 und einen anderen Dienst mit Menge von 5.000 in 40 Tagen einen Service 80 Tage gekauft und die letzte Dienst vor 5000 in 20 Tagen

so die Menge betrug 20.000 aber er konnte es nicht in 50 Tagen füllen, weil sein letzter Kauf 60 Tage nach dem ersten war, also kann er nicht der Benutzer sein, den wir wollen.

jedoch wenn dieser Benutzer vor 10 Tagen einen anderen Dienst mit einem Betrag von 10.000 gekauft hat, dann kann er der Benutzer sein, weil sein zweiter, dritter und vierter Kauf in 50 Tagen war und mindestens 20.000 hatte.

ich erklärte so viel wie ich konnte.

der Punkt ist, dass das Datum ein Tag von 2 Jahren sein kann und vielleicht der Benutzer füllte 20.000 mit 5 Produkt.

ich bin meine Tabelle Bild hier anhängen also wenn Sie Abfrage für diese Tabelle schreiben würde es sehr gut sein.

ist nur 1 Tabelle.

invoice table

die gesamte Spalte in meiner Tabelle ist der Preis für 1-spezifischen Kauf.

und die Spalte für Datum ist Datumsspalte.

EDIT

dies ist die Abfrage Ich habe, es ist einfach total bekommen und mein Problem ist, mit der Zeit.

SELECT invoice.userid, Sum(invoice.total) AS totsam 
FROM invoice 
GROUP BY table.userid 
HAVING totsam > 20000 
+0

** ** Wenn Sie ein 'date haben/datetime' Spalte, Sie kann [MySQL-Aggregatfunktion wie SUM/GROUP BY] (https://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html) und [MySQL date/time function] (https: //dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html) (WENN ich das, was Ihr Ziel ist, richtig verstanden habe ...) – OldPadawan

+0

Siehe http: //meta.stackoverflo w.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql-query – Strawberry

+0

Wie heißt das Datumsfeld? und welche struktur verwendest du? – Forbs

Antwort

0

etwas entlang der Linien von

SELECT * FROM Tabelle WHERE Tage < 50 und TotalAmount> 20000

+0

es ist nicht was ich will. Ich kann nichts von Ihrem asnwer bekommen – Mehran

0
SELECT * 
FROM invoice_table 
WHERE 
    (DATEDIFF(CURDATE(),invoice_table.date)<50 
    AND SUM(total)>20000) 
+0

Dies wird Benutzer aus den letzten 50 Tagen richtig? aber ich möchte Benutzer von 50 Tagen in der Tabelle – Mehran

Verwandte Themen