急在线等待--如何在选出符合条件的记录的同时求出这些记录中某几项的平均值

libamboo 2002-09-24 06:28:35
有一个总库记录了几个班级学生的五科成绩,如何从此库中选出符合条件的记录(比如一个班级的学生成绩记录)的同时求出这些记录中某几项的平均值及每科成绩的及格率,谢谢
...全文
83 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
libamboo 2002-09-24
  • 打赏
  • 举报
回复
j9988(j9988):对不起,你写的语句和结构正是我想说的,我也并不是说你写的语句不是一条,(我之所以在这个论坛提问这个问题,是因为我想要的结果是多条符合条件的记录及某几项的平均值(平均值只能有一个值)不太好实现在BCB中),我要的结果最后是应用在BCB中,我不知道在BCB中的Query->SQL->Add()语句中能否实现,在Query->SQL->Add()语句中你的写法不知道行否?我在调试。
Yang_ 2002-09-24
  • 打赏
  • 举报
回复
问问题说清楚表结构、要求的格式。

j9988 2002-09-24
  • 打赏
  • 举报
回复
上面不是一条?算几条?
libamboo 2002-09-24
  • 打赏
  • 举报
回复
我的目的是想通过一条语句来实现我的想法
j9988 2002-09-24
  • 打赏
  • 举报
回复
语文,数学,英语,化学,物理:

select 姓名,语文,数学,英语,化学,物理 from table1 where 班级='班级1'

union all

select '平均成绩',avg(语文),avg(数学),avg(英语),avg(化学),avg(物理) from
(
select 姓名,语文,数学,英语,化学,物理 from table1 where 班级='班级1'
) a

union all

select '及格率',
(1.00*sum(case when 语文>=60 then 1 else 0 end))/count(*),
(1.00*sum(case when 数学>=60 then 1 else 0 end))/count(*),
(1.00*sum(case when 英语>=60 then 1 else 0 end))/count(*),
(1.00*sum(case when 化学>=60 then 1 else 0 end))/count(*),
(1.00*sum(case when 物理>=60 then 1 else 0 end))/count(*)
from
(
select 姓名,语文,数学,英语,化学,物理 from table1 where 班级='班级1'
) b
ptpa 2002-09-24
  • 打赏
  • 举报
回复
先筛选出记录,
用一个试图保存起来。

再对这个试图进行操作
ptpa 2002-09-24
  • 打赏
  • 举报
回复
用存储过程
smx717616 2002-09-24
  • 打赏
  • 举报
回复
你能给出字段么?这样好回答!!

34,590

社区成员

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

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