数据库查询
查询 1984 年~1986 年出生的学生的姓名,总平均成绩及已修学分数。Select sname 姓名,avg(sc.grade) 总平均成绩,sum(courses.credit) 已修学分数
from students,sc,courses
where students.bdate between 1984-01-01 and 1986-12-31 and students.sno = sc.sno and courses.cno = sc.cno group by students.sname;
这样子查询为什么查出的结果是空的啊 本帖最后由 歌者文明清理员 于 2023-6-27 15:55 编辑
你好,根据你提供的查询语句,可能是由于日期格式的问题导致查询结果为空。在SQL中,日期需要使用引号括起来表示为字符串,所以请尝试将日期范围的条件改为以下形式:
sql
WHERE students.bdate BETWEEN '1984-01-01' AND '1986-12-31'
重新运行查询语句后,应该可以正确地获取到 1984 年至 1986 年出生的学生的姓名、总平均成绩和已修学分数的结果。如果问题仍然存在,请提供更多相关的信息,我将尽力帮助你解决。 修改查询语句中的日期比较部分,将日期值用引号括起来,如下所示:
SELECT students.sname AS 姓名, AVG(sc.grade) AS 总平均成绩, SUM(courses.credit) AS 已修学分数
FROM students, sc, courses
WHERE students.bdate BETWEEN '1984-01-01' AND '1986-12-31'
AND students.sno = sc.sno
AND courses.cno = sc.cno
GROUP BY students.sname;
这样修改后再执行查询,应该能够正确返回结果。 歌者文明清理员 发表于 2023-6-27 15:48
你好,根据你提供的查询语句,可能是由于日期格式的问题导致查询结果为空。在SQL中,日期需要使用引号括起 ...
好的 谢谢 sfqxx 发表于 2023-6-27 16:52
修改查询语句中的日期比较部分,将日期值用引号括起来,如下所示:
感谢您的回答! zzzqy 发表于 2023-6-27 17:06
好的 谢谢
https://i.imgtg.com/2023/06/18/OTpTnF.png
页:
[1]