标题:请高手帮修改下sql语句
只看楼主
fyz520
Rank: 1
等 级:新手上路
帖 子:120
专家分:1
注 册:2010-1-27
结帖率:95.12%
已结贴  问题点数:10 回复次数:7 
请高手帮修改下sql语句
数据表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语句呢?谢谢



搜索更多相关主题的帖子: 语句 sql 
2010-12-09 10:37
fyz520
Rank: 1
等 级:新手上路
帖 子:120
专家分:1
注 册:2010-1-27
得分:0 
在线等哦……
2010-12-09 15:03
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2545
专家分:9359
注 册:2007-11-3
得分:0 
可以用其他折中的办法 比方说用list<xuesheng> 接收到读取的数据后 在添加自定义的数据 并最终呈现
或者创建个临时表 例如新增列zongfen  将读取到的信息和自定义的信息插入到临时表中 并读取呈现

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2010-12-09 15:15
fyz520
Rank: 1
等 级:新手上路
帖 子:120
专家分:1
注 册:2010-1-27
得分:0 
不太懂哦,能说得详细点吗?谢谢
2010-12-09 15:22
fyz520
Rank: 1
等 级:新手上路
帖 子:120
专家分:1
注 册:2010-1-27
得分:0 
你是说把得到的结果集
姓名    yuwen    shuxue
张三    85        90
李四    65        85
放到list ,然后用for扫一遍让yuwen+shuxue=zongfen,再输出来吗?不能一句sql语句搞定吗
2010-12-09 15:25
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2545
专家分:9359
注 册:2007-11-3
得分:10 

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

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2010-12-09 15:49
chenhao19860
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:86
专家分:151
注 册:2010-3-15
得分:0 
6楼的方法可行
2010-12-09 16:12
fyz520
Rank: 1
等 级:新手上路
帖 子:120
专家分:1
注 册:2010-1-27
得分:0 
谢谢你们,,我搞出来,和大家一起共享吧
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

就加红色部分
2010-12-10 07:37



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-328464-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.125570 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved