消息关闭
    暂无新消息!
表a:
id name
1  老张
2  嚣张
3  老实

表B:
id     time          name  aid   sum
1        20160412   老张  1   200
2       20160412   老张  1   200
3       20160413   老张  1   200
4        20160412   嚣张  2   200
5        20160412   嚣张  2   200
6        20160413   嚣张  2   200
7        20160411   老实  3   200

表结构类似上面的

现在要求,例如查询12~13号a表中对应B表当天最后一条数据的sum(按B表id来取),如果查询不到就去B表中所有记录的最后一条

查询结果应该为:
2       20160412   老张  1   200
3       20160413   老张  1   200
5        20160412   嚣张  2   200
6        20160413   嚣张  2   200
5        20160411   老实  3   200

1个回答

︿ 2
select * from B as t where not exists(select 1 from B where time=t.time and name=t.name and aid=t.aid and id>t.id)


aid对应name引用同一个表时,可去掉name条件