--建立测试环境
Create table TEST
(ID Int IDENTITY(1,1),
name Nvarchar(20),
xueli Nvarchar(20),
bi_ye_shi_jian DateTime
)
GO
--插入数据
Insert TEST Values(N'小王',N'大学','2000-12-12')
Insert TEST Values(N'小王',N'高中','1998-12-15')
Insert TEST Values(N'小六',N'大学','2012-04-15')
Insert TEST Values(N'小和',N'大学','2001-04-12')
Insert TEST Values(N'小张',N'大学','2001-12-01')
Insert TEST Values(N'小里',N'高中','2004-02-13')
Insert TEST Values(N'小张',N'眼就是','2006-12-13')
GO
--测试
--查出所有最高学历为高中的记录
Select A.* from TEST A Inner Join
(Select name,Max(bi_ye_shi_jian) As bi_ye_shi_jian from TEST Group By name)B
On A.name=b.name And A.bi_ye_shi_jian=B.bi_ye_shi_jian Where xueli=N'高中' Order By ID
--查出所有最高学历为大学的记录
Select A.* from TEST A Inner Join
(Select name,Max(bi_ye_shi_jian) As bi_ye_shi_jian from TEST Group By name)B
On A.name=b.name And A.bi_ye_shi_jian=B.bi_ye_shi_jian Where xueli=N'大学' Order By ID
--查出所有最高学历为研究生的记录
Select A.* from TEST A Inner Join
(Select name,Max(bi_ye_shi_jian) As bi_ye_shi_jian from TEST Group By name)B
On A.name=b.name And A.bi_ye_shi_jian=B.bi_ye_shi_jian Where xueli=N'眼就是' Order By ID
--删除测试环境
Drop table TEST
--结果
/*
id name xueli bi_ye_shi_jian
6 小里 高中 2004-02-13 00:00:00.000id name xueli bi_ye_shi_jian
1 小王 大学 2000-12-12 00:00:00.000
3 小六 大学 2012-04-15 00:00:00.000
4 小和 大学 2001-04-12 00:00:00.000id name xueli bi_ye_shi_jian
7 小张 眼就是 2006-12-13 00:00:00.000*/
解决方案 »
- 合计问题
- 有什么SQL语句可以代替SQL语句Where in 特殊情况用不了WHERE IN。还有什么办法??
- 这样的数据库我设计的怎样,发现查询时候有个问题我这样设计。如果是你怎么设计呢?
- 求高手解决,如何同时联合读取同一个表中的两个不同值,显示在一起
- 菜鸟问题!关于修改表字段的默认值!
- 如何对一个Access文件设置为一个只读属性,并且从此属性设置不可被修改。
- 关于公式的实现??
- 我吃多了,好难受。
- 请教: 我用vb怎么修改远程数据库中的数据~~ 。请进来看看!!
- 高手帮忙看下,以下存储过程为什么最后一行会报错(在Navicat里面,所以不要create关键字),
- 导入导出遇到棘手的问题
- SELECT @ERR=@ERR+@@ERROR;是什么意思啊?
select * from 表 a
where xueli=N'高中'
and not exists(select * from 表 where name=a.name and bi_ye_shi_jian>a.bi_ye_shi_jian)--查询大学的
select * from 表 a
where xueli=N'大学'
and not exists(select * from 表 where name=a.name and bi_ye_shi_jian>a.bi_ye_shi_jian)