sql语句语文数学英语之和(问一个SQL语句的问题)

本文目录
问一个SQL语句的问题
你的这个问题比较简单,分二次查询,第一次查询出姓名,再按姓名查询成绩,一项一项放在相应的成绩中最后就成绩叠加即可。
但从你给的数据看,同姓名同科名的记录有重复的,这样可能只能得到后面的记录。例如:张三,语文,89 与 张三,语文,70 只能得到 张三,语文,70 这个记录,而 张三,语文,89 会被覆盖。
由于没有数据库,只能给你部分代码,一会给你做。
上面是数据表的数据
上面是统计结果
如果需要源文件,给你的地址,注意数据库是 2007 Access 数据库,数据库名称是:成绩表.laccdb,数据表名称是:成绩表。
sql 合并列
如果你确定一共只有语文,数学,英语三门课,很好办
SQL2005中测试结果:
select
b.name,
substring(rtrim(b.subject),0,len(rtrim(b.subject))) as ’subject’
from
(select
a.name,
(case when a.yw=1 then ’语文,’ else ’’ end)+(case when a.sx=1 then ’数学,’ else ’’ end)+(case when a.yy=1 then ’英语,’ else ’’ end) as ’subject’
from
(select name,
sum(case when subject=’语文’ then 1 else 0 end ) as ’yw’,
sum(case when subject=’数学’ then 1 else 0 end ) as ’sx’,
sum(case when subject=’英语’ then 1 else 0 end ) as ’yy’
from 表名
group by name) a)b
但是科目的个数不确定,就比较困难了。
SQL列与列之间如何求和
你需要对 这个结果产生的表再执行一次GROUP BY操作。
主要是 这个语句中你 已经对Book.Price,Consumer.Discount,Book.WholeSell执行分组操作了,因此对于这单个字段计算的到的结果肯定是唯一的,所以你计算sum也是对一个记录计算,当然一样了
SELECT Book.BID,BName,Price*Discount AS
FROM Book,Sold,Consumer
Where Book.BID=Sold.BID AND Consumer.CID=Sold.CID AND Time between dateadd(dd,-30,getdate()) and getdate()
GROUP BY Sold.CID,Book.BName,Book.BID

更多文章:
全球新冠肺炎疫情背景下航运发展(盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行)
2026年9月7日 17:10
matlab求解带字母参数方程组(我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数)
2026年9月7日 16:30
oracle中的循环语句(下面哪个不是oracle程序设计中的循环语句 a for)
2026年9月7日 15:30
电脑里2个系统怎么删除一个(电脑开机显示有两个系统,如何删除一个)
2026年9月7日 12:20
scrollthrough意思(“scroll”是什么意思)
2026年9月7日 08:00
怎么激活keygen(注册机如何激活cad2008一个简单激活cad2008的方法)
2026年9月7日 06:30





