你的select语句出错了,要用sum,怎么没有gruop by语句啊可以用select * from #temp
麻烦大家说详细一点,或者你给出问题的解答(用临时表),我刚学sql,所以先感谢大家
select cast(cast((sum(进来的女生数)-sum(出去的女生数)) as numeric(10,2))/(sum(进来的女生数)+sum(进来的男生数)-sum(出去的女生数)-sum(出去的男生数)) as numeric(10,2)) as 女生所占比例 from 原表
select cast(cast((sum(进来的女生数)-sum(出去的女生数)) as numeric(10,2))/(sum(进来的女生数)+sum(进来的男生数)-sum(出去的女生数)-sum(出去的男生数)) as numeric(10,2)) as 女生所占比例 into #临时表 from 原表 select * from #临时表
select ....(你想选择的字段) into #temp from table(你要用的原表)这里#temp就是临时表,你可以像用一般的表一样用它 另外,在用sum,max等这样的聚集函数的时候要用gruop by把你要聚集的这些数据分类,这样才能ok。先把select学好就是了;)
chao778899(220330)我按你的做法出来了结果,但能否把结果转化为百分数?谢谢! 另外以下语句有何错误: select sum(进去的女生数)-sum(出去的女生数) as 女生数 into #a from 原表为何提示as 附近有错误?
再 /100 不就可以吗? 你这样就可以了:select sum(进去的女生数-出去的女生数) as '女生数' into #a from 原表
select cast(cast((sum(进来的女生数)-sum(出去的女生数)) as numeric(10,2))/(sum(进来的女生数)+sum(进来的男生数)-sum(出去的女生数)-sum(出去的男生数)) as numeric(10,2))*100 as 女生所占比例 into #临时表 from 原表 select * from #临时表 另: select sum(进去的女生数)-sum(出去的女生数) as 女生数 into #a from 原表 没有错误啊:)
或者: select convert(char(5),cast(cast((sum(进来的女生数)-sum(出去的女生数)) as numeric(10,2))/(sum(进来的女生数)+sum(进来的男生数)-sum(出去的女生数)-sum(出去的男生数)) as numeric(10,2))*100)+'%' as 女生所占比例 into #临时表 from 原表
select * from #临时表
另外,在用sum,max等这样的聚集函数的时候要用gruop by把你要聚集的这些数据分类,这样才能ok。先把select学好就是了;)
另外以下语句有何错误:
select sum(进去的女生数)-sum(出去的女生数) as 女生数 into #a from 原表为何提示as 附近有错误?
你这样就可以了:select sum(进去的女生数-出去的女生数) as '女生数' into #a from 原表
select * from #临时表
另:
select sum(进去的女生数)-sum(出去的女生数) as 女生数 into #a from 原表
没有错误啊:)
select convert(char(5),cast(cast((sum(进来的女生数)-sum(出去的女生数)) as numeric(10,2))/(sum(进来的女生数)+sum(进来的男生数)-sum(出去的女生数)-sum(出去的男生数)) as numeric(10,2))*100)+'%' as 女生所占比例 into #临时表 from 原表