求一句SQL,多谢

求一句SQL,谢谢!表结构:记录聊天消息/*对方ID*//*收到消息时间*//*消息内容*//*消息标记,1:已读;2:未读*

求一句SQL,谢谢!
表结构:<记录聊天消息>

/*对方ID*/   /*收到消息时间*/   /*消息内容*/    /*消息标记,1:已读;2:未读*/
     userid              time             content              msgflag

一句SQL得到与每个用户最近的一条聊天记录,并得到未读消息数目。

谢谢!
[解决办法]
select * ,c.[count]
from tab a inner join (select userid,count(1) [count] from tab where msgflag=2 group by userid) c on a.userid=c.userid
where exists 
(select 1 from (
select userid,max(time) time
from tab
group by userid)b where a.userid=b.userid and a.time=b.time )