sql - SQL sum 聚合函数的问题
问题描述
我正在尝试对具有 3 个表的数据库运行查询:COURSE、SECTION、ENROLL。
他们是这样创造的:
create table COURSE
(
Cno varchar(9) primary key,
Cname varchar(50),
Credit int check (Credit > 0)
);
create table SECTION
(
Cno varchar(9) REFERENCES COURSE(cno),
Sno varchar(9),
Semester varchar(15) check(Semester in('Fall','Spring','Summer')),
Year int,
Sid varchar(9) primary key
);
create table ENROLL
(
Mno varchar(9) REFERENCES STUDENT(Mno),
Sid varchar(9) REFERENCES SECTION(Sid),
Grade CHAR check(Grade in('A','B','C','D','F')),
primary key(Mno,Sid)
);
我正在尝试对SUM
学生注册的课程的所有学分进行计算。这就是我尝试完成此操作的方式:
select
SUM(select Credit
from COURSE c
where c.Cno = (select s.Cno
from SECTION s
where s.Sid = (select Sid
from ENROLL
where Mno = @mNum));
但是我在 Visual Studio 中遇到一个错误,上面写着
'select' 附近的语法不正确(第二个 select 语句)
这是什么错误?任何帮助将不胜感激。
解决方案
看看它是否有效:
select sum(Credit) from COURSE c where c.Cno in
(select s.Cno from SECTION s where s.Sid in (select Sid from ENROLL where Mno = @mNum))
group by c.Cno;
推荐阅读
- python - 如何使用 numpy 执行此复制操作?
- git - 尝试连接到 Bitbucket 的致命错误
- python - 循环在迭代整个列表之前停止
- node.js - npm:如何找到特定版本的节点模块的最新兼容版本?
- mongodb - 在 Mongoose 中填充数组
- spring-batch - Spring Batch 重启
- oauth-2.0 - 此身份验证和请求资源的工作流程是否满足 OAuth2 的要求?
- spring-boot - 如何将客户端订阅到 rsocket 服务器?
- c - 如何保存用户使用子程序输入的向量?
- c# - 使用 BindAttribute 的 Prefix 属性绑定到单个参数