鱼C论坛

 找回密码
 立即注册
查看: 381|回复: 5

数据库查询

[复制链接]
发表于 2023-6-27 15:46:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
查询 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;

这样子查询为什么查出的结果是空的啊

students数据表

students数据表
屏幕截图 2023-06-27 154250.png
屏幕截图 2023-06-27 154244.png

查询结果为空

查询结果为空
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-27 15:48:35 | 显示全部楼层
本帖最后由 歌者文明清理员 于 2023-6-27 15:55 编辑

你好,根据你提供的查询语句,可能是由于日期格式的问题导致查询结果为空。在SQL中,日期需要使用引号括起来表示为字符串,所以请尝试将日期范围的条件改为以下形式:

sql
  1. WHERE students.bdate BETWEEN '1984-01-01' AND '1986-12-31'
复制代码

重新运行查询语句后,应该可以正确地获取到 1984 年至 1986 年出生的学生的姓名、总平均成绩和已修学分数的结果。如果问题仍然存在,请提供更多相关的信息,我将尽力帮助你解决。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-27 16:52:13 | 显示全部楼层
修改查询语句中的日期比较部分,将日期值用引号括起来,如下所示:

  1. SELECT students.sname AS 姓名, AVG(sc.grade) AS 总平均成绩, SUM(courses.credit) AS 已修学分数
  2. FROM students, sc, courses
  3. WHERE students.bdate BETWEEN '1984-01-01' AND '1986-12-31'
  4.   AND students.sno = sc.sno
  5.   AND courses.cno = sc.cno
  6. GROUP BY students.sname;
复制代码

这样修改后再执行查询,应该能够正确返回结果。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-27 17:06:13 | 显示全部楼层
歌者文明清理员 发表于 2023-6-27 15:48
你好,根据你提供的查询语句,可能是由于日期格式的问题导致查询结果为空。在SQL中,日期需要使用引号括起 ...

好的 谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-27 17:06:53 | 显示全部楼层
sfqxx 发表于 2023-6-27 16:52
修改查询语句中的日期比较部分,将日期值用引号括起来,如下所示:

感谢您的回答!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-27 17:08:35 | 显示全部楼层


                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-17 11:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表