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)就得到了结果