如何查询最后的记录

时间:2013-04-01 07:58:08

标签: mysql sql

所以,如果我有这张桌子:

    | ID  |   Date   |  Status  |  Value  |

    | 1   | 2-2-2012 |  A       |  5      |
    | 2   | 3-4-2012 |  B       |  3      |
    | 1   | 5-6-2012 |  C       |  1      |
    | 2   | 1-1-2012 |  D       |  4      |

我需要为每个ID获取总值和“最新”状态,如何进行查询?我尝试使用group by,但在查询结果中显示的方式只有最旧的状态。

我需要让数据变成这样:

    | ID  |   Date   |  Status  |sum(Value)|

    | 2   | 3-4-2012 |  B       |  7       |
    | 1   | 5-6-2012 |  C       |  6       |

我是这个SQL的新手,不是IT人员,只是因为我的老板要求从我们的数据库中提取一些数据....

提前感谢...

2 个答案:

答案 0 :(得分:0)

由于您未提及任何RDBM,因此以下查询几乎适用于所有RDBMS。

这使用一个子查询,该子查询分别获取最新date假设日期的数据类型实际存储为DATE而不是字符串) {1}}。然后将子查询的结果连接回表本身,以获取其他列。

ID

答案 1 :(得分:0)

如果您使用的是mysql,那么这将有效

 SELECT id,date,status,sum(value) 
 FROM (select * from yourTable order by DATE desc ) t  
 group by ID 
 order by ID desc