不知道怎么用一条语句实现,大家给看看,谢谢

DelphiStudy 2004-04-28 09:50:39
成绩记录
TABLE Grade(
StuSysID --学生系统编号
CourseSysID --课程系统编号
Credit --学分(整数)
Grade --成绩(在0-100之间的整数)
)
StuSysID是从学生信息里选出来的,表示需要进行计算的学生,数量不定.
CourseSysID是从其他表里选出来的,表示学生学过的课程,数量不定.
一个学生的成绩有很多条这样de记录,数目不定.
我现在要求每个学生的平均成绩,并插入另外一个表里.
平均分de算法,我给个例子说明一下:
StuSysID=345
CourseSysID IN [1,2,3],成绩分别是95 65 85,学分是8 6 6
平均分=(95*8+65*6+85*6)/(8+6+6)

学生有很多,每个人都学过很多课。够麻烦的吧,我搞不定,大家帮帮忙,谢谢。
...全文
55 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
DelphiStudy 2004-04-29
  • 打赏
  • 举报
回复
谢谢大家!我想大家的办法肯定够用啦!
结贴,给分。
shuichangliu 2004-04-29
  • 打赏
  • 举报
回复
select a.studyID,
[avgGrade]=sum(a.credit*a.grade)/sum(a.credit)
--into #tmpTable
from grade a
group by a.studyID
shuichangliu 2004-04-29
  • 打赏
  • 举报
回复
--测试数据
create table Grade
( studyID varchar(10),
courseSysID varchar(10),
credit tinyint,
grade int default 0 check(grade>=0 and grade<=100)
)
insert Grade select 'XH0001','KC001', 8,80
union all select 'XH0001','KC002', 6,60
union all select 'XH0001','KC003', 4,30
union all select 'XH0001','KC004', 5,79
union all select 'XH0001','KC005',10,99
union all select 'XH0002','KC002', 6,80
union all select 'XH0002','KC003', 4,55
union all select 'XH0002','KC004', 5,66
union all select 'XH0003','KC001', 8,88
union all select 'XH0003','KC002', 6,61
union all select 'XH0003','KC004', 5,58


----测试语句
select a.studyID,
[avgGrade]=(select top 1 sum(b.credit*b.grade)/sum(b.credit)
from grade b where b.studyID=a.studyID)
--into #tmpTable
from
(select distinct studyID from Grade) a

--测试结果
studyID avgGrade
---------- -----------
XH0001 75
XH0002 68
XH0003 71

(所影响的行数为 3 行)
shuichangliu 2004-04-29
  • 打赏
  • 举报
回复
搞得测试数据来啥!!
DelphiStudy 2004-04-28
  • 打赏
  • 举报
回复
大家帮帮忙啊
DelphiStudy 2004-04-28
  • 打赏
  • 举报
回复
将 expression 转换为数据类型 tinyint 时发生算术溢出错误。
cast(sum(Credit*Grade) as numeric(10,2))有错
cast(sum(Credit) as numeric(10,2))没错
怎么办呢?
8992026 2004-04-28
  • 打赏
  • 举报
回复
select StuSysID,cast(sum(Credit*Grade) as numeric(10,2))/sum(Credit) as avgGrade
from Grade
group by StuSysID
【3D应力敏感度分析拓扑优化】【基于p-范数全局应力衡量的3D敏感度分析】基于伴随方法的有限元分析和p-范数应力敏感度分析(Matlab代码实现)内容概要:本文档介绍了基于伴随方法的有限元分析与p-范数全局应力衡量的3D应力敏感度分析,并结合拓扑优化技术,提供了完整的Matlab代码实现方案。该方法通过有限元建模计算结构在载荷作用下的应力分布,采用p-范数对全局应力进行有效聚合,避免传统方法中应力约束过多的问题,进而利用伴随法高效求解设计变量对应力的敏感度,为结构优化提供关键梯度信息。整个流程涵盖了从有限元分析、应力评估到敏感度计算的核心环节,适用于复杂三维结构的轻量化与高强度设计。; 适合人群:具备有限元分析基础、拓扑优化背景及Matlab编程能力的研究生、科研人员与工程技术人员,尤其适合从事结构设计、力学仿真与多学科优化的相关从业者; 使用场景及目标:①用于实现高精度三维结构的应力约束拓扑优化;②帮助理解伴随法在敏感度分析中的应用原理与编程实现;③服务于科研复现、论文写作与工程项目中的结构性能提升需求; 阅读建议:建议读者结合有限元理论与优化算法知识,逐步调试Matlab代码,重点关注伴随方程的构建与p-范数的数值处理技巧,以深入掌握方法本质并实现个性化拓展。

34,874

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧