标题:亲人们,请教一个SQL语句
只看楼主
eepcvfp
Rank: 2
等 级:论坛游民
帖 子:166
专家分:15
注 册:2013-8-12
结帖率:87.5%
已结贴  问题点数:20 回复次数:3 
亲人们,请教一个SQL语句
亲人们,我又来了!

ChengJi.dbf表的结构如下:
成绩ID  班级  语文
1       1     90
2       1     92
3       1     89
4       1     93
5       1     72
6       1     87
7       1     75
8       2     89
9       2     94
10      2     67
11      2     72
12      2     85
13      2     90
14      2     85
15      3     89
16      3     86
17      3     81
18      3     74
19      3     91
20      3     96
21      3     74

我想用Select出每个班的语文成绩前三名,共9条记录(三个班,每班前三甲),请问这个语句该怎么写呢?
我用SQL Server能实现,但同样的语句在VFP里却不好使。

为了方便亲人们测试,我把测试数据发在下面了。
程序代码:
CREATE CURSOR ChengJi (成绩ID INT, 班级 INT, 语文 INT)
INSERT INTO ChengJi (成绩ID, 班级, 语文) VALUES (1,1,90)
INSERT INTO ChengJi (成绩ID, 班级, 语文) VALUES (2,1,92)
INSERT INTO ChengJi (成绩ID, 班级, 语文) VALUES (3,1,89)
INSERT INTO ChengJi (成绩ID, 班级, 语文) VALUES (4,1,93)
INSERT INTO ChengJi (成绩ID, 班级, 语文) VALUES (5,1,72)
INSERT INTO ChengJi (成绩ID, 班级, 语文) VALUES (6,1,87)
INSERT INTO ChengJi (成绩ID, 班级, 语文) VALUES (7,1,75)
INSERT INTO ChengJi (成绩ID, 班级, 语文) VALUES (8,2,89)
INSERT INTO ChengJi (成绩ID, 班级, 语文) VALUES (9,2,94)
INSERT INTO ChengJi (成绩ID, 班级, 语文) VALUES (10,2,67)
INSERT INTO ChengJi (成绩ID, 班级, 语文) VALUES (11,2,72)
INSERT INTO ChengJi (成绩ID, 班级, 语文) VALUES (12,2,85)
INSERT INTO ChengJi (成绩ID, 班级, 语文) VALUES (13,2,90)
INSERT INTO ChengJi (成绩ID, 班级, 语文) VALUES (14,2,85)
INSERT INTO ChengJi (成绩ID, 班级, 语文) VALUES (15,3,89)
INSERT INTO ChengJi (成绩ID, 班级, 语文) VALUES (16,3,86)
INSERT INTO ChengJi (成绩ID, 班级, 语文) VALUES (17,3,81)
INSERT INTO ChengJi (成绩ID, 班级, 语文) VALUES (18,3,74)
INSERT INTO ChengJi (成绩ID, 班级, 语文) VALUES (19,3,91)
INSERT INTO ChengJi (成绩ID, 班级, 语文) VALUES (20,3,96)
INSERT INTO ChengJi (成绩ID, 班级, 语文) VALUES (21,3,74)



[此贴子已经被作者于2018-8-25 20:21编辑过]

搜索更多相关主题的帖子: 成绩 语文 INSERT INTO VALUES 
2018-08-25 17:12
xs591222
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:680
专家分:1287
注 册:2009-3-1
得分:0 
想要什么结果呢?你没说哎
2018-08-25 17:14
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:20 
* 找出了一段代码示例,不知是否符合楼主的要求
CREATE CURSOR  tt (班级 c(10),学号 c(10),成绩 n(3))
INSERT INTO tt VALUES ("01","X0101",86)
INSERT INTO tt VALUES ("01","X0102",92)
INSERT INTO tt VALUES ("01","X0103",72)
INSERT INTO tt VALUES ("01","X0104",86)
INSERT INTO tt VALUES ("02","X0201",75)
INSERT INTO tt VALUES ("02","X0202",81)
INSERT INTO tt VALUES ("02","X0203",72)
INSERT INTO tt VALUES ("02","X0204",73)
INSERT INTO tt VALUES ("03","X0204",74)
* 分组前3名
SELECT A.班级,A.学号,A.成绩 FROM tt A WHERE 3>(SELECT COUNT(*) FROM tt WHERE 班级=A.班级 AND 成绩>A.成绩) ORDER BY a.班级,成绩 DESC

[此贴子已经被作者于2018-8-25 17:32编辑过]


坚守VFP最后的阵地
2018-08-25 17:27
eepcvfp
Rank: 2
等 级:论坛游民
帖 子:166
专家分:15
注 册:2013-8-12
得分:0 
回复 3楼 sdta
谢谢大侠,又一次得到您的帮助,非常感谢!
未能及时回复,请见谅!
2018-08-25 20:19



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-489424-1-1.html




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

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