sql中使用sum函数 出现列名无效 10

题目是这样的:统计第2学期开设的课程的总学分,列出该学期所有的课程名,学分和总学分Course是我的存课程的表如下:以下是我写的代码:SELECTCname课程名,Cre... 题目是这样的:统计第2学期开设的课程的总学分,列出该学期所有的课程名,学分和总学分

Course是我的存课程的表
如下:

以下是我写的代码:
SELECT Cname 课程名,Credit 学分,SUM(Credit) AS 总学分
From Course
WHERE Semester =2

错误信息:
消息 8120,级别 16,状态 1,第 1 行
选择列表中的列 'Course.Cname' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。

去掉SUM(Credit) AS 总学分就不会报错,查询结果如下:

那怎么查出我想要的结果?
如下:

请解答,谢谢,分不多,麻烦了!
展开
 我来答
huuboo5
2015-10-27 · 超过61用户采纳过TA的回答
知道小有建树答主
回答量:166
采纳率:0%
帮助的人:95.3万
展开全部
SELECT Cname 课程名,Credit 学分,SUM(Credit) AS 总学分
From Course
WHERE Semester =2
group by Cname ,Credit

但是这样写会有问题,应该不是你要的 ,你需要的应该是这个

SELECT Cname 课程名 ,SUM(Credit) AS 总学分
From Course
WHERE Semester =2
group by Cname
追问

也不对,按课程分组后只有每个课程自己加自己,总分根本算不出来

你的语句出来的结果:

追答
你是想要所有学分相加?
SELECT CASE WHEN GROUPING(Cname) = 1 THEN '总学分'ELSE Cname end as 课程名, SUM(Credit) AS 学分
From Course
WHERE Semester =2
GROUP BY Cname
WITH ROLLUP
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式