求救:一个SQL查询语句
本人最近做一个管理系统,遇到一个查询问题,如下:
***********
用户表结构(w_manage)
***********
字段:
w_id(编号) w_name(名字) w_place(籍贯) w_date(登记日期)
数据:
w_id w_name w_place w_date
-------------------------------
1 张三 河南 2005-5-7
2 李四 北京 2006-9-24
3 王二 广州 2001-1-3
4 陈六 河南 2005-1-22
5 周七 北京 1995-2-4
6 罗五 广州 2002-3-13
... ... ... ...
现在我要的是,查询出每个籍贯的前100条记录,每个籍贯的信息以日期来排序。
则,查询结果为:
w_id w_name w_place w_date
-------------------------------
4 陈六 河南 2005-1-22
1 张三 河南 2005-5-7
... ... ... ...
5 周七 北京 1995-2-4
2 李四 北京 2006-9-24
... ... ... ...
3 王二 广州 2001-1-3
6 罗五 广州 2002-3-13
... ... ... ...
请教各位大虾,这个SQL语句怎么写。前一阵子,我试着写了一下,其执行效率非常的低,表数据总量在5000条时,几乎不能正常完成预想效果。语句如下:
sqlect a.* from w_manage a
where a.id in
(
select top 100 b.id from w_manage b where
(
a.w_place=b.w_place
)
orer by b.w_date
)