id | name | date | quan |
1 | olay | 1997-01-01 | 3 |
2 | olay | 2010-01-01 | 5000 |
3 | olay | 2011-01-01 | 90000 |
4 | kiehl | 2011-01-01 | 333 |
5 | kiehl | 2011-12-12 | 999 |
以上是示範的數據表, 內容爲倉庫物品的盤點
現在想顯示{每個物品最近一次盤點}的信息
完整代碼如下:
SELECT tmp.id,tmp.name,tmp.date,tmp.quan FROM(
SELECT id,name,date,quan FROM datet ORDER BY date desc) as tmp
GROUP BY name
思路就是首先對日期進行降序,這樣日期臨近的就被排在前面,之後再對物品名稱分組,
就得到[對物品名分組,並且日期是降序的]結果了
實現上, 括號內是一次查詢,就是按日期排序
把這個查詢的結果作爲tmp表(as tmp),之後再對tmp表按名稱分組(group by name)就得到了結果