sql - 使用 SQL 为查找表中的标记分配成绩
问题描述
我正在尝试编写一个查询来给一个百分比评分
我有每个学生每篇论文的百分比表(StuID、pct、paperID)和成绩边界表(paperID、minScore、maxScore、Grade)
这个想法是有一个查询,它给我学生姓名和 pct 的最小和最大分数之间的等级。
在电子表格中很容易(查找)可笑,在 SQL 中似乎很难。我真的想避免导出到 Excel 并在那里计算,或者在选择中硬编码边界,但目前它们似乎是我唯一的选择。
任何关于保持 a) 在 SQL 中和 b) 尽可能概括的建议(即我将要重用具有不同等级边界的查询)
由于工作中的(荒谬的)软件限制,我只能使用 MS Access 来满足我的数据库需求
谢谢
解决方案
请注意如何处理范围。因此,请检查>=
和<
调整条件并根据您的情况进行调整。
SELECT S.StuID, S.paperID, S.pct, G.Grade
FROM Student S
JOIN Grades G
ON S.grade >= G.minScore
AND S.grade < G.maxScore
推荐阅读
- c# - 为什么浮点数计算在 .net 核心和 .net 框架中不同
- mysql - 选择每个玩家的得分总和
- c++ - g_main_loop_quit 抛出 GLib-CRITICAL 错误。如何在 C++ 中处理它?
- django - 如何从与外键链接的表中获取逗号分隔值?
- android - 高程属性在 api >= 27 中不起作用
- three.js - 什么更有效:具有克隆材料的新网格或具有克隆材料的克隆网格?
- java - 无法将 org.glassfish.jersey.inject.hk2.Hk2InjectionManagerFactory 转换为 org.glassfish.jersey.internal.inject.InjectionManagerFactory
- kotlin - 警告:API 'variant.getPackageLibrary()' 已过时,已替换为 'variant.getPackageLibraryProvider()'
- linq - 通过linq c#将日期划分为句点
- php - Codeigniter 3 - 如何在用户的时区显示日期和时间