日期:2014-05-18  浏览次数:20768 次

求一SQL语句写法?
我想做一个如同下表的操作: 
select sum(yuwen),sum(shuxue),xuehao,banji,sex from  
biao  

group by xingming  


出现这样的错误 
列 'biao.xuehao '在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。 
列 'biao.banji '在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。 
 列 'biao.sex '在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。 

怎么做才能得到这些列的查询结果
 

------解决方案--------------------
select sum(yuwen) as yuwen,count(yuwen) as cnt,xingming into #cj from biao group by xingming
select * from #cj
select #cj.yuwen,xuehao from biao,#cj where #cj.xingming=biao.xingming
------解决方案--------------------
你的目的有问题,姓名相同的成绩作统计,统计的结果可能是几条数据的和,也就是几个学生的成绩的和,怎么能将学生的信息列出来的,也就是说不能出现一个属性存在多个信息片,我只能做到这样了:
select * from (select sum(yuwen) as sumyuwen,sum(shuxue) as sumshuxue ,xingming from biao group by xingming ) as t left join (select banji,xuehao,sex from biao) as b on t.xingming=b.xingming

sumyuwen sumshuxue xingming banji xuehao sex
89 107 a 01 001 1
89 107 a 01 002 1
89 107 a 02 003 0
89 107 a 02 004 1
59 86 b 01 005 0
59 86 b 02 006 1
66 77 c 03 007 1

原表是:
xuehao banji sex xingming yuwen shuxue 

001 01 1 a 12 21
002 01 1 a 22 31
003 02 0 a 11 22
004 02 1 a 44 33
005 01 0 b 55 32
006 02 1 b 4 54
007 03 1 c 66 77
------解决方案--------------------
SQL code

select stuName ,sum(chScr),max(class),sum(maScr),max(sex) from tt group by stuName