2015-05-17 65 views
0

我想,有一個特定的名稱和標識的最新日期,例如,如果我有SQL請求返回attribut最近日期和另一場

designation | Inventory | date 
----------------------------------------- 
    dufaston | 20  | 15.05.2015 
    dufaston | 10  | 16.05.2015 
    aspigic  | 5   | 17.05.2015 

它應該得到的庫存字段的值我庫存= 10爲dufaston指定,但我的SQL代碼不起作用,我的代碼返回0,因爲它需要我的表最近的日期,是17.05.2015,並對應於aspigic不是dufaston,在這裏誰可以幫我糾正我的代碼

ResultSet sqlCalcul=stmt.executeQuery("SELECT inventaire FROM calcul WHERE designation='"+designation+"' AND date=(SELECT MAX(date) FROM calcul)"); 

回答

2

我假設你r列date是一個實際的日期字段,而不僅僅是一個表示日期的字符串?

如果是這樣,下面應該工作:

SELECT Inventory FROM your_table 
    WHERE designation = your_designation 
    ORDER BY date DESC 
    LIMIT 1 

你基本上選擇具有所要求指定的所有行,按日期排序他們並丟棄所有,但最近的一次。