表结构如下
员工编号 类型 时间
1 a 2009-3-1
1 a 2009-3-10
1 b 2009-4-1
1 b 2009-4-10
2 a 2009-1-15
2 a 2009-1-1按照员工,类型分组 选出最大的时间
结果如下:员工编号 类型 时间
1 a 2009-3-10
1 b 2009-4-10
2 a 2009-1-15
员工编号 类型 时间
1 a 2009-3-1
1 a 2009-3-10
1 b 2009-4-1
1 b 2009-4-10
2 a 2009-1-15
2 a 2009-1-1按照员工,类型分组 选出最大的时间
结果如下:员工编号 类型 时间
1 a 2009-3-10
1 b 2009-4-10
2 a 2009-1-15
解决方案 »
- 我想自己学习用,SQL2000应该装哪个版本呢,有个人版,企业版,开发版,标准版
- marco08(天道酬勤) 兄进来一下啊
- 郁闷了,这么简单的语句竟然在查询分析器里通不过,大家快来拿分
- SQL 如何批量IP插入
- 存储过程中怎么写触发事件
- 为何这样呀,在存储过程中突然退出,还说超时时间已到。在操作完成之前超时时间已过或服务器未响应,咱解决呀,急,望仙人指点(代码已贴出)
- 大力:请帮解决这个问题:instead of update 触发器不能执行以下语句
- 数据库连接?
- 数据库连接问题
- sql server 2008 r2 安装提示错误 错误代码 0x84B20001 求解答
- 将数据导出excel,可是对于字符串‘001’,‘002’,在excel中双击就会变成1,2了
- 查询分析器输出的表格中,单元格的内容最后是什么字符?
from tb
group by 员工编号,类型
if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([员工编号] int,[类型] varchar(1),[时间] datetime)
insert [tb]
select 1,'a','2009-3-1' union all
select 1,'a','2009-3-10' union all
select 1,'b','2009-4-1' union all
select 1,'b','2009-4-10' union all
select 2,'a','2009-1-15' union all
select 2,'a','2009-1-1'
---查询---
select 员工编号,类型,max(时间) as 时间
from tb
group by 员工编号,类型
order by 员工编号,类型
---结果---
员工编号 类型 时间
----------- ---- ------------------------------------------------------
1 a 2009-03-10 00:00:00.000
1 b 2009-04-10 00:00:00.000
2 a 2009-01-15 00:00:00.000(所影响的行数为 3 行)
员工编号 类型 货物名称 时间
1 a A货 2009-3-1
1 a B货 2009-3-10
1 b c货 2009-4-1
1 b d货 2009-4-10
2 a e货 2009-1-15
2 a f货 2009-1-1 按照员工,类型分组 选出时间最大的那个货物名称
结果如下: 员工编号 类型 时间
1 a B货
1 b d货
2 a f货
if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([员工编号] int,[类型] varchar(1),[货物名称] varchar(3),[时间] datetime)
insert [tb]
select 1,'a','A货','2009-3-1' union all
select 1,'a','B货','2009-3-10' union all
select 1,'b','c货','2009-4-1' union all
select 1,'b','d货','2009-4-10' union all
select 2,'a','e货','2009-1-15' union all
select 2,'a','f货','2009-1-1'
---查询---
select *
from tb t
where not exists(select 1 from tb where 员工编号=t.员工编号 and 类型=t.类型 and 时间>t.时间)---结果---
员工编号 类型 货物名称 时间
----------- ---- ---- ------------------------------------------------------
1 a B货 2009-03-10 00:00:00.000
1 b d货 2009-04-10 00:00:00.000
2 a e货 2009-01-15 00:00:00.000(所影响的行数为 3 行)