2017-02-21 2 views
0

Mit Hilfe der folgenden Abfrage kann ich den Unterschied zwischen zwei Werten für eine bestimmte ID zwischen zwei Daten anfordern.MySQL - Unterschied zwischen Werten bezogen auf ein Datum

SET @ID = 46; 
SET @DATE1 = '2017-02-08'; 
SET @DATE2 = '2017-02-12'; 


select today.value - tbd_date.value from 
(Select value from Table1 WHERE Datum = @DATE1 and ID = @ID) as today 
CROSS JOIN 
((Select value from Table1 WHERE Datum = @DATE2 and ID = @ID) as tbd_date) 

Aber es gibt mehr als eine ID. Wie lautet die Abfrage, um für alle IDs der Tabelle den Unterschied zwischen diesen beiden Daten zu erhalten?

Danach möchte ich sie basierend auf dem Unterschied der Werte sortieren.

Tabelle:

ID  DATE   value 
46  2017-02-08  5 
47  2017-02-08  8 
48  2017-02-08  10 
46  2017-02-12  7 
47  2017-02-12  11 
48  2017-02-12  5 

Ergebnis:

ID  value (today) difference 
47  11    +3 
46  7    +2 
48  5    -5   

Antwort

0

kommen einfach auf die ID:

Select a.id, b.value - a.value 
From table1 a 
    join table1 b on b.Id = a.Id 
     and b.datum = @date2 
     and a.datum = @date1 
order by b.value - a.value 
Verwandte Themen