积木首页 - 学院 - 软件测试 - 技术百科 - 问答 - 黄页 - 手册 - 站长工具 - 社区
登录 | 注册
积木技术社区 » SqlServer » mssql语句的group问题:从聊天纪录获得最近联系人的语句
打印 楼主:cuiweirose 发表于 2011-01-13 17:41 [回复5次/有效4个,浏览364次]

mssql语句的group问题:从聊天纪录获得最近联系人的语句 [精]

比如:我有这样一个聊天的数据库:
id:ID
ni:你
wo:我
yuju:聊天语句
tim:聊天时间
这个mssql数据表里面就是聊天内容,现在用什么样的sql语句获得某人最近联系人记录?最近联系人包括此人发送给别人的和别人发送给此人的所有最新聊天的人,相当于qq等的最近联系人功能,具体sql语句怎么写?不要用另外表记录联系人的方法。问题补充:
请注意:这个问题不是把聊天记录按倒序排序,因为同一个人会有多条聊天,同一个人的只能取一个,并且不管是我发给对方聊天,还是对方发给我聊天,都算最近联系人。谢谢。
另外,我要的是在asp.net中直接可以用的sql语句,而不是写在mssql里的存储过程等代码,谢谢。
2楼 发表于 2011-01-13 18:12
我擦 大大的SQL每次都看的我心跳
3楼 发表于 2011-01-13 18:19
select t.* from tb t where tim = (select max(tim) from tb where id = t.id)
select t.* from tb t where not exists (select 1 from tb where id = t.id and tim > t.tim)
4楼 发表于 2011-01-13 18:46
SQL code
select case when ni = '某人' then wo else ni end
from 表名
where ni='某人' or wo = '某人'
group by case when ni = '某人' then wo else ni end
order by max(tim) desc
楼主,记得结贴哦
5楼 发表于 2011-01-13 18:59
SQL code
create table tb
(
id int identity,
user1 varchar(10),
user2 varchar(10),
content varchar(8000),
tim datetime
)
insert into tb
select 'u1','u2','aaaaaaaaaaa',GETDATE() union all
select 'u2','u5','aaaaaaaaaaa',GETDATE()-1 union all
select 'u4','u1','aaaaaaaaaaa',GETDATE()-2 union all
select 'u3','u2','aaaaaaaaaaa',GETDATE()+1 union all
select 'u2','u1','aaaaaaaaaaa',GETDATE()+2 union all
select 'u4','u3','aaaaaaaaaaa',GETDATE()-2 union all
select 'u3','u2','aaaaaaaaaaa',GETDATE()+1
select user1,tim from(
select ROW_NUMBER()over(partition by user1 order by tim desc) as rn,user1,tim
from
(
select user1,tim
from tb
union all
select user2,tim
from tb
)a) aa
where rn=1
/*
------------------
user1 tim
u1 2011-01-13 09:02:20.503
u2 2011-01-13 09:02:20.503
u3 2011-01-12 09:02:20.503
u4 2011-01-09 09:02:20.503
u5 2011-01-10 09:02:20.503
*/
标题:
内容:

PHP: PHP技巧 - PHP基础 - PHP实例 - PHP错误代码 - 正则表达式 - 热门脚本语言: DOS命令 - vbs - CSS/HTML - python - perl - ruby - shell编程 - Powershell

JS: node.js - JS基础 - extjs - jQuery - JavaScript技巧

网址导航成语大全积木 TinyMCE 服务邮箱: Gimoohr(#)gmail.com
Copyright © 2008 Gimoo.Net  京ICP备05050695号