所以,如果我有这张桌子:
| 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人员,只是因为我的老板要求从我们的数据库中提取一些数据....
提前感谢...
答案 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