如何连接带聚合函数的视图及studentDetails、BiggestPrice视图创建问题
视图实现代码
1. studentDetails视图实现
该视图需要关联学生表、选课表、科目表三张表,通过外键建立关联关系后,筛选科目为Science或History的选课记录,返回要求的字段:
CREATE VIEW StudentDetails AS SELECT s.StudName, e.EnrollmentDate, sub.Priceperunit AS 每单位总价格, sub.SubjDescription AS 科目描述 FROM Student s INNER JOIN Enrollment e ON s.StudentId = e.StudentId INNER JOIN Subject sub ON e.SubjId = sub.SubjId WHERE sub.SubjDescription IN ('Science', 'History');
2. BiggestPrice视图实现
该视图仅需要使用科目表数据,按科目ID分组后筛选单位总价格大于1000的记录即可,你原代码的错误在于冗余关联了学生表、嵌套使用聚合函数、分组字段错误:
CREATE VIEW BiggestPrice AS SELECT SubjId, MAX(Priceperunit) AS 最高每单位总价格 FROM Subject GROUP BY SubjId HAVING MAX(Priceperunit) > 1000;
如果需求中的“每单位总价格”指的是单个科目的总费用(单位数*每单位价格),可以调整为如下代码:
CREATE VIEW BiggestPrice AS SELECT SubjId, MAX(Units * Priceperunit) AS 最高科目总价格 FROM Subject GROUP BY SubjId HAVING MAX(Units * Priceperunit) > 1000;
内容的提问来源于stack exchange,提问作者Renzm.6958
相关产品推荐
相关产品推荐

