简单查询问题sql

libaozhen1208 2010-07-23 02:22:30
怎样查询一个学生的,姓名,语文成绩、平均成绩?
...全文
84 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoli1987 2010-07-23
  • 打赏
  • 举报
回复
如果你的表,每个课程都为一个字段,那么上面说的都应该可以。

我最开始想得结构是下面这个样子的

姓名 课程 成绩
aa 语文 88

所以我就与他们不一样

CREATE TABLE [tb] ([姓名] [nvarchar](10),[课程] [nvarchar](10),[成绩] [int])
INSERT INTO [tb]
SELECT 'aa','语文',65 UNION ALL
SELECT 'aa','数学',66 UNION ALL
SELECT 'aa','英语',87 UNION ALL
SELECT 'bb','语文',90 UNION ALL
SELECT 'bb','数学',66 UNION ALL
SELECT 'bb','英语',66 UNION ALL
SELECT 'cc','语文',100 UNION ALL
SELECT 'cc','数学',55 UNION ALL
SELECT 'cc','英语',55



select A.姓名,A.课程,A.成绩,avg(C.成绩) as 平均成绩 from tb A,tb C
where A.姓名='aa' and A.课程='语文' and C.姓名='aa'
group by A.姓名,A.课程,A.成绩
--结果
aa 语文 65 72

feixianxxx 2010-07-23
  • 打赏
  • 举报
回复
select 学号,姓名,
语文成绩=max(case when 课程='语文' then 成绩 end),
数学成绩=max(case when 课程='数学' then 成绩 end),
英语成绩=max(case when 课程='英语' then 成绩 end),
平均成绩=avg(成绩)
from tb
group by 学号,姓名
CXZ84 2010-07-23
  • 打赏
  • 举报
回复
select 姓名,语文成绩, (语文成绩+数学成绩+英语成绩)/3 as 平均成绩 from 学生表
htl258_Tony 2010-07-23
  • 打赏
  • 举报
回复
SELECT 学号,姓名,(语文成绩+数学成绩+英语成绩)/3. AS 平均成绩 FROM tb WHERE 姓名='具体姓名'
王向飞 2010-07-23
  • 打赏
  • 举报
回复
select 学号,姓名,语文成绩, (语文成绩+数学成绩+英语成绩)/3 as 平均成绩 from tb where
姓名 = '张三'
王向飞 2010-07-23
  • 打赏
  • 举报
回复
select 学号,姓名,语文成绩,avg(语文成绩+数学成绩+英语成绩) as 平均成绩 from tb where
姓名 = '张三'
htl258_Tony 2010-07-23
  • 打赏
  • 举报
回复
SELECT 学号,姓名,(语文成绩+数学成绩+英语成绩)/3. AS 平均成绩
libaozhen1208 2010-07-23
  • 打赏
  • 举报
回复
学号,姓名,语文成绩,数学成绩,英语成绩

34,594

社区成员

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

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