Ich habe seit zwei Tagen mit einem Problem zu kämpfen, und ich brauche Hilfe.Abrufen von Wert in Reihenfolge und Subtraktion Zeilen mit mySQL
Ich möchte Subtraktion auf aufeinander folgenden Zeilen in einer SQL-Tabelle, sondern durch Sortieren von Werten vor.
Zum Beispiel habe ich meine Tabelle wie diese:
Name | Activity | Day
John | Tennis | Day10
Bob | Swimming | Day9
Mathilda | Tennis | Day2
John | Swimming | Day2
Bob | Tennis | Day2
John | Computer Science | Day 10
In dieser Tabelle würde ich für die Personen wissen, die mehr als eine Aktivität, was die Zeit zwischen zwei Aktivitäten.
Also in diesem Beispiel, wenn wir Tage subtrahieren können, sehen wir, als John und Bob zwei Aktivitäten haben und die maximale Zeitpause für sie von John mit 8 Tagen erreicht wird.
Ich habe versucht, es wie dies zu tun:
SET @previousDay:=0;
SELECT Name, days, @previousDay - day, @previousDay:=day
FROM table
WHERE Name IN (SELECT Name FROM table group by Name having count(Name) > 1)
ORDER BY Name, Day
Aber das ist völlig falsch, wie die ORDER BY nach der Substraktion erfolgt. Ich sehe das gute Ergebnis nicht, weil ich die Subtraktion mit aufeinanderfolgenden Werten für Tage sortiert machen möchte.
Es scheint, dass ich das IN-Ergebnis nicht sortieren kann, also wissen Sie, ob es eine Möglichkeit gibt, mein Problem zu lösen?
Vielen Dank für Ihre Hilfe !!!
BTW: Ich weiß nicht, wie man den Tisch richtig formatiert, so würde jede Hilfe geschätzt werden, danke viel!
Vielen Dank für Ihre Hilfe und Ihren Kommentar, das ist wirklich hilfreich. Unvorstellbar bekomme ich nur NULL-Werte wegen der @n <> name Bedingung auf meinem Tisch, ich weiß nicht warum. Ich habe versucht, den Wertnamen zu @n in der Select-Abfrage zuweisen, aber es ändert nichts. Ich werde versuchen, das zu lösen. Vielen Dank für Ihre Antwort Ich habe viel gelernt, indem ich Ihren Code gesehen habe. – Mike
@Mike. . . Ich habe etwas vergessen. –