2014-09-04 60 views
0

考慮與數據表作爲比較從MySQL中的最後兩個日期的數據 - DB

SomeID Date  SomeData 
1  2014-07-29 SomeNumber1 
2  2014-07-29 SomeNumber2 
1  2014-07-30 SomeNumber3 
2  2014-07-30 SomeNumber4 

我想與另一個ID的數據作爲兩個一個ID的數據進行比較,最後兩個日期最近的日期。如何選擇由最近兩個日期的ID和日期唯一標識的數據。最終的結果會是這樣的

SomeNumber1 - SomeNumber3
SomeNumber2 - SomeNumber4

等等...

+0

有趣的確:)雖然我幾乎沒有付出任何努力,但我從meta複製了模板;) – Sohaib 2014-09-04 09:58:47

+0

實際上沒有辦法制作表格。你可以格式化它。 – Sohaib 2014-09-04 10:03:23

+0

@fancyPants FYI http://meta.stackexchange.com/a/128302 :) – Sohaib 2014-09-04 10:08:50

回答

0

假設你的日期總是順序,你可以嘗試這樣的事:

select a.SomeData - b.SomeData from MyTable a, MyTable b 
where a.SomeID = b.SomeID and b.Date = DATE_ADD(a.Date, INTERVAL 1 DAY) 

但你可能想要跳過週末等等,在這種情況下,它會變得更加複雜(例如使用增量列)

+0

正如我所說的,它應該只是最後兩個日期,這會給我所有的一天差異。 – Sohaib 2014-09-04 10:00:42

+0

對不起,以爲你的意思是兩個連續日期。試着添加:AND b.Date IN(SELECT MAX(Date),DATE_SUB(MAX(Date),INTERVAL 1 DAY)FROM MyTable) – Giles 2014-09-04 10:10:29