com_name member_id position addDate
---------------------------------------------------
公司A 20069898 总监 2007-4-4
公司B 20069897 文员 2007-4-3
公司C 20069696 业务员 2007-5-5
公司A 20069898 技术员 2007-4-1
公司B 20069897 业务员 2007-5-6
公司A 20069898 管理员 2007-4-6
公司C 20069696 财务会计 2007-5-4我想查询出 :
每个公司只显示一次,而且相同类和不相同类均按addDate倒序排出来(按member_id来分辨不同公司名)
如我想得到的结果如下:
com_name member_id position addDate
---------------------------------------------------
公司B 20069897 业务员 2007-5-6
公司C 20069696 业务员 2007-5-5
公司A 20069898 管理员 2007-4-6
---------------------------------------------------
公司A 20069898 总监 2007-4-4
公司B 20069897 文员 2007-4-3
公司C 20069696 业务员 2007-5-5
公司A 20069898 技术员 2007-4-1
公司B 20069897 业务员 2007-5-6
公司A 20069898 管理员 2007-4-6
公司C 20069696 财务会计 2007-5-4我想查询出 :
每个公司只显示一次,而且相同类和不相同类均按addDate倒序排出来(按member_id来分辨不同公司名)
如我想得到的结果如下:
com_name member_id position addDate
---------------------------------------------------
公司B 20069897 业务员 2007-5-6
公司C 20069696 业务员 2007-5-5
公司A 20069898 管理员 2007-4-6
解决方案 »
- SQL 2005 可以安装在vmware workstation上吗?
- 请问SQL2000中,如何统计重复数据的总数???
- SQL Server 2000浮点数误差问题
- 如何用sql语句从一个数据库导入到另一个数据库?
- SQL SERVER 2008 无法连接数据库引擎
- 关于sql语句长度的问题
- 请教:有关select top n * ……的查询语句
- 请教sql语句
- 请问,server2000数据库不支持短日期格式吗,为什么我从ASSECE导入数据总是提示溢出呢?
- 我的SQL server 2000怎么就是安装不起来,是不是跟分区有关阿
- 使用SQL Server 2005 导入\导出 报错
- 插入数据库取出唯一的键值
(
com_name varchar(10),
member_id varchar(10),
position varchar(10),
addDate datetime
)
insert into tb
select '公司A','20069898','总监','2007-4-4' union all
select '公司B','20069897','文员','2007-4-3' union all
select '公司C','20069696','业务员','2007-5-5' union all
select '公司A','20069898','技术员','2007-4-1' union all
select '公司B','20069897','业务员','2007-5-6' union all
select '公司A','20069898','管理员','2007-4-6' union all
select '公司C','20069696','财务会计','2007-5-4'
goselect a.* from tb a inner join
(
select com_name,member_id,max(addDate) addDate from tb group by com_name,member_id
) b
on a.com_name=b.com_name and a.member_id=b.member_id and a.addDate=b.addDate
order by addDate desc
--
com_name member_id position addDate
---------- ---------- ---------- -----------------------
公司B 20069897 业务员 2007-05-06 00:00:00.000
公司C 20069696 业务员 2007-05-05 00:00:00.000
公司A 20069898 管理员 2007-04-06 00:00:00.000(3 行受影响)
from [table] a
where not exists(select 1 from [table] where member_id=a.member_id and adddate>a.adddate)
order by member_id
(
com_name varchar(10),
member_id varchar(10),
position varchar(10),
addDate datetime
)
insert into #temp
select '公司A','20069898','总监','2007-4-4' union all select '公司B','20069897','文员','2007-4-3' union all select '公司C','20069696','业务员','2007-5-5' union all select '公司A','20069898','技术员','2007-4-1' union all select '公司B','20069897','业务员','2007-5-6' union all select '公司A','20069898','管理员','2007-4-6' union all select '公司C','20069696','财务会计','2007-5-4'
select * from #temp
select com_name,member_id,position ,addDate
from [#temp] a
where not exists(select 1 from [#temp] where member_id=a.member_id and adddate>a.adddate)
order by member_id------------
公司C 20069696 业务员 2007-05-05 00:00:00.000
公司B 20069897 业务员 2007-05-06 00:00:00.000
公司A 20069898 管理员 2007-04-06 00:00:00.000