注册 登录
编程论坛 ASP.NET技术论坛

请高手帮修改下sql语句

fyz520 发布于 2010-12-09 10:37, 692 次点击
数据表xuesheng,字段:xuehao,name,banji;
数据表chengji,字段:xuehao,chengji,xueke,xueqi,haoxu;

通过以下sql语句:

select xuesheng.name as 姓名,max(case xueke when '语文' then chengji else 0 end) yuwen,max(case xueke when '数学' then chengji else 0 end) shuxue from xuesheng,chengji where xuesheng.xuehao=chengji.xuehao and xueqi=1 and haoxu=1 and banji='一(1)班' group by name

得到结果集:
姓名    yuwen    shuxue
张三    85        90
李四    65        85

我想得到的结果是:
姓名    yuwen    shuxue    zongfen
张三    85        90        175
李四    65        85        150

就是在原来的sql语句(蓝色部分)的基础上增加一列(zongfen),并且按zongfen进行降序排序,应该怎么修改这条sql语句呢?谢谢



7 回复
#2
fyz5202010-12-09 15:03
在线等哦……
#3
wangnannan2010-12-09 15:15
可以用其他折中的办法 比方说用list<xuesheng> 接收到读取的数据后 在添加自定义的数据 并最终呈现
或者创建个临时表 例如新增列zongfen  将读取到的信息和自定义的信息插入到临时表中 并读取呈现
#4
fyz5202010-12-09 15:22
不太懂哦,能说得详细点吗?谢谢
#5
fyz5202010-12-09 15:25
你是说把得到的结果集
姓名    yuwen    shuxue
张三    85        90
李四    65        85
放到list ,然后用for扫一遍让yuwen+shuxue=zongfen,再输出来吗?不能一句sql语句搞定吗
#6
wangnannan2010-12-09 15:49
只有本站会员才能查看附件,请 登录

select xuesheng.name as 姓名,max(case xueke when '语文' then chengji else 0 end) yuwen,max(case xueke when '数学' then chengji else 0 end) shuxue
(max(case xueke when '语文' then chengji else 0 end)+max(case xueke when '语文' then chengji else 0 end)) zongfen
from xuesheng,chengji where xuesheng.xuehao=chengji.xuehao and xueqi=1 and haoxu=1 and banji='一(1)班' group by name
#7
chenhao198602010-12-09 16:12
6楼的方法可行
#8
fyz5202010-12-10 07:37
谢谢你们,,我搞出来,和大家一起共享吧
select xuesheng.name as 姓名,max(case xueke when '语文' then chengji else 0 end) yuwen,max(case xueke when '数学' then chengji else 0 end) shuxue,
sum(chengji)zongfen from xuesheng,chengji where xuesheng.xuehao=chengji.xuehao and xueqi=1 and haoxu=1 and banji='一(1)班' group by name

就加红色部分
1