| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 911 人关注过本帖
标题:麻烦大家帮小弟写一条SQL语句
只看楼主 加入收藏
baobeitianshi
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-4-30
收藏
 问题点数:0 回复次数:5 
麻烦大家帮小弟写一条SQL语句
写出一条语句,在"教学成绩管理数据库1"数据库中,查询"教学成绩表"中,总分最大学生的学号,姓名,总分.
建库建表的SQL语句如下,每个人在"教学成绩表"中有三门成绩.

USE [master]
GO
CREATE DATABASE [教学成绩管理数据库1] ON  PRIMARY
( NAME = N'教学成绩管理数据库', FILENAME = N'D:\教学成绩管理数据库.mdf' , SIZE = 2688KB , MAXSIZE = UNLIMITED, FILEGROWTH = 10%)
 LOG ON
( NAME = N'教学成绩管理数据库_log', FILENAME = N'D:\教学成绩管理数据库_log.ldf' , SIZE = 504KB , MAXSIZE = UNLIMITED, FILEGROWTH = 10%)
 COLLATE Chinese_PRC_CI_AS
GO
USE [教学成绩管理数据库1]
GO
CREATE TABLE [dbo].[教学成绩表]
(
    [学号] [char](6) COLLATE Chinese_PRC_CI_AS NOT NULL,
    [课程编号] [char](6) COLLATE Chinese_PRC_CI_AS NOT NULL,
    [分数] [numeric](5, 1) NULL DEFAULT (0),
)
GO
CREATE TABLE [dbo].[学生信息表]
(
    [学号] [char](6) COLLATE Chinese_PRC_CI_AS NOT NULL,
    [姓名] [nchar](4) COLLATE Chinese_PRC_CI_AS NOT NULL,
    [性别] [nchar](1) COLLATE Chinese_PRC_CI_AS NOT NULL,
)
GO
INSERT INTO [教学成绩表]([学号],[课程编号],[分数]) VALUES ('11111','10101',75)
INSERT INTO [教学成绩表]([学号],[课程编号],[分数]) VALUES ('11111','10102',76)
INSERT INTO [教学成绩表]([学号],[课程编号],[分数]) VALUES ('11111','10103',77)
INSERT INTO [教学成绩表]([学号],[课程编号],[分数]) VALUES ('11112','10101',72)
INSERT INTO [教学成绩表]([学号],[课程编号],[分数]) VALUES ('11112','10102',71)
INSERT INTO [教学成绩表]([学号],[课程编号],[分数]) VALUES ('11112','10103',76)
GO
INSERT INTO [学生信息表] ([学号],[姓名],[性别]) VALUES ('11111','小华','男')
INSERT INTO [学生信息表] ([学号],[姓名],[性别]) VALUES ('11112','小李','女')
GO
搜索更多相关主题的帖子: SQL语句 数据库 quot 麻烦 
2008-05-15 22:05
happynight
Rank: 8Rank: 8
等 级:贵宾
威 望:15
帖 子:807
专家分:760
注 册:2008-4-26
收藏
得分:0 
SELECT 学生信息表.学号,姓名,MAX(SUM(分数))
FROM 学生信息表 INNER JOIN 教学成绩表
     ON 学生信息表.学号= 教学成绩表.学号
GROUP BY 学生信息表.学号,姓名
没测试过 你试下
2008-05-16 00:10
baobeitianshi
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-4-30
收藏
得分:0 
兄弟不可以啊.因为不能用MAX(SUM(分数)) , 我想要用到子查询的,SQL是这样报错的:
不能对包含聚合或子查询的表达式执行聚合函数。
2008-05-16 10:40
happynight
Rank: 8Rank: 8
等 级:贵宾
威 望:15
帖 子:807
专家分:760
注 册:2008-4-26
收藏
得分:0 
SORRY 昨天是在家里写的 准备睡觉了 没怎么看仔细 错的一塌糊涂
SELECT 学号,姓名,b.分数
FROM
    (SELECT MAX(分数) 分数
    FROM
        (SELECT 学生信息表.学号,姓名,SUM(分数) 分数
        FROM 学生信息表 INNER JOIN 教学成绩表
             ON 学生信息表.学号= 教学成绩表.学号
        GROUP BY 学生信息表.学号,姓名) AS a) b
INNER JOIN
    (SELECT 学生信息表.学号,姓名,SUM(分数) 分数
    FROM 学生信息表 INNER JOIN 教学成绩表
         ON 学生信息表.学号= 教学成绩表.学号
    GROUP BY 学生信息表.学号,姓名) AS c
ON b.分数=c.分数
写是写了个 但是看着别扭 看有哪位高手能给个更好的
2008-05-16 11:14
baobeitianshi
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-4-30
收藏
得分:0 
谢谢happynight兄弟,这样写虽然是长了点,可是运行结果是正确的,小弟初学.
2008-05-16 11:46
baobeitianshi
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-4-30
收藏
得分:0 
还有哪位朋友有更简洁的写法?
2008-05-17 00:14
快速回复:麻烦大家帮小弟写一条SQL语句
数据加载中...
 
   



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

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