| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1112 人关注过本帖
标题:帮我找找原因哈!为啥两个表不报错,三个表就要报错,groupby不会用
只看楼主 加入收藏
kim;bbc;
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2019-7-10
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
帮我找找原因哈!为啥两个表不报错,三个表就要报错,groupby不会用
学生表,成绩表,课程表,现要查每门课程的最高分,平均分,并找到最高分的学生姓名
图片附件: 游客没有浏览图片的权限,请 登录注册

如果不附带学生表
SELECT a.c_id,b.c_name,MAX(s_score) as 最高分 ,AVG(s_score)as 平均分 FROM score a join course b ;
on a.c_id=b.C_id group BY a.c_id,b.c_name   --可以正确查出,这里我不明白groupby一定要把c_name带上
但是如果我需要把学生姓名找到,那语句就会是:
SELECT a.c_id,b.c_name,c.s_name,MAX(s_score) as 最高分 ,AVG(s_score)as 平均分 FROM score a join course b ;
on a.c_id=b.C_id JOIN student c ON a.s_id=c.s_id group BY a.c_id,b.c_name,c.s_name
提示groupby子句缺少或者无效,请大神赐教!

[此贴子已经被作者于2019-7-11 23:12编辑过]

搜索更多相关主题的帖子: 原因 两个表 报错 学生 join 
2019-07-11 23:10
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:766
专家分:2517
注 册:2011-5-8
收藏
得分:10 
把表发上来

dBase有人接盘了。
2019-07-12 08:36
wufuzhang
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:贵宾
威 望:21
帖 子:206
专家分:1346
注 册:2017-8-9
收藏
得分:10 
回复 楼主 kim;bbc;
程序代码:
select t2.sc_max_chengji2 最高分, t2.sc_avg_chengji2 平均分, st.s_name 学生姓名
    from (
        select t.sc_max_chengji sc_max_chengji2, t.sc_avg_chengji sc_avg_chengji2, sc2.s_id student_id
            from(
                select MAX(s_score) sc_max_chengji, AVG(s_score)  sc_avg_chengji, sc.c_id sc_course_id
                    from score sc 
                    group by sc.c_id
            ) as t
            join score sc2
            on t.sc_max_chengji=sc2.s_score and t.sc_course_id=sc2.c_id
    ) as t2
    join student st
    on t2.student_id=st.s_id


[此贴子已经被作者于2019-7-12 12:03编辑过]


不经历千百遍的调试,怎能体会成功时那一刹那的喜悦。
2019-07-12 10:04
快速回复:帮我找找原因哈!为啥两个表不报错,三个表就要报错,groupby不会用
数据加载中...
 
   



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

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