| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1592 人关注过本帖
标题:[求助]请教一个关于oracle的sql问题
只看楼主 加入收藏
北极光
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2006-10-24
收藏
 问题点数:0 回复次数:5 
[求助]请教一个关于oracle的sql问题
在oracle的一张表里有四个字段:姓名,出生年月,发表文章名,发表文章号(假设为两位,按01-10的顺序自动生成).
每个人可能发表多篇文章;请问有什么样的sql可以将每个人最后一次发表文章的所有记录同时输出?
如下表:

姓名

出生年月

发表文章名

发表文章号

a

2000-01

a 发表文章名1

01

a

2000-01

a 发表文章名2

02

a

2000-01

a 发表文章名3

03

b

2001-01

b发表文章名1

01

b

2001-01

b 发表文章名2

02

c

2002-01

c 发表文章名1

01

c

2002-01

c 发表文章名2

02


实现输出结果:
姓名 出生年月 发表文章名 发表文章号

a 2000-01 a 发表文章名3 03
b 2001-01 b 发表文章名2 02
c 2002-01 c 发表文章名2 02

请问这个select语句该怎么写吗?谢谢!

[此贴子已经被作者于2007-5-13 10:38:48编辑过]

搜索更多相关主题的帖子: oracle sql 
2007-05-13 10:21
solo214
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-5-13
收藏
得分:0 
select * from 表名 where 姓名="a" and 发表文章号 in (select max(发表文章号) from 表名 where 姓名="a")
or 姓名="b" and 发表文章号 in (select max(发表文章号) from 表名 where 姓名="b")
or 姓名="c" and 发表文章号 in (select max(发表文章号) from 表名 where 姓名="c");

2007-05-13 22:09
北极光
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2006-10-24
收藏
得分:0 
谢谢你的解答
但是你的回答不实用
比如:对于一个四千人的库那我的select那岂不是要写很长。
2007-05-15 08:14
solo214
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-5-13
收藏
得分:0 
select * from 表名 where 发表文章号 in (select max(发表文章号) from 表名 where in (select distanct 姓名 from 表名))


这个你试试的吧

2007-05-15 09:38
心中有剑
Rank: 2
等 级:新手上路
威 望:5
帖 子:611
专家分:0
注 册:2007-5-18
收藏
得分:0 
select 姓名,max(出生年月) as 出生年月 ,max(发表文章名) as 发表文章名,max(发表文章号) as 发表文章号 from 表明 group by 姓名

这样应该就可以了吧

2007-05-18 14:05
北极光
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2006-10-24
收藏
得分:0 

不好意思
这几天忙,没能上来。
我的问题,有点特殊,你们说的都不合用。
谢谢你们的解答!
结贴。

2007-05-24 10:19
快速回复:[求助]请教一个关于oracle的sql问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024467 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved