SQL高手们,你们帮看一下如何用SQL语句统计下面的结果,没有分了,帮帮忙 ( 积分: 20 )

  • 主题发起人 主题发起人 yangxiufengcn
  • 开始时间 开始时间
Y

yangxiufengcn

Unregistered / Unconfirmed
GUEST, unregistred user!

姓名 年龄 现在年级 离校年级 文化程度
小王 7 一年级 在校
小李 26 六年级 小学毕业
小陈 5 未入学
小张 16 初三 在校
想要的结果:(分级,交叉统计)
5岁 6岁 7岁 8岁 9岁 ....50岁
就读一年级 1
就读二年级
就读三年级 25
就读四年级
.....
离校五年级
离校六年级
小学毕业
初中毕业
从未入学 20
 
select 文化程度,sum(case when 年龄=5 then 1 else 0 end) as 5岁,sum(case when 年龄=6 then 1 else 0 end) as 6岁,...sum(case when 年龄=50 then 1 else 0 end) as 50岁 group by 文化程度
 
xinjinre: 在SQL数据库中确定能解决文化程度的交叉统计,我用的Access,还有以下问题:
就读一年级 //属现年级
就读三年级 //属现年级
就读四年级 //属现年级
.....
离校五年级 //属离校年级
离校六年级 //属离校年级

小学毕业 //属离文化程度
初中毕业 //属离文化程度


该如何写??高手帮忙
 
你先看看这个:
http://coolbo.com.cn/bbs/dispost.asp?BoardID=60&PostID=4432
你要得到的结果最好先把它做一个视图,然后再对它进行查询就OK了,上面的要是看懂了,应该较好解决。这是个动态方法。还蛮好用的。
 
select 文化程度,sum(case when 年龄=5 then 1 else 0 end) as 5岁,sum(case when 年龄=6 then 1 else 0 end) as 6岁,...sum(case when 年龄=50 then 1 else 0 end) as 50岁 group by 文化程度
 
比较复杂,搞不定,呵呵.
看看alern给的链接吧
 
盼高手出现,我也顶
 
直接用SQL语句不是一般的麻烦(列拼接+结果集Union),我现在用的是简单的Select语
句提取到客户端,然后用一个方法进行处理,在二维Grid中展示——不到800行代码,效果
非常好。
 
这个表比较有意思!呵呵

把行和列颠倒过来,效果是一样的,但是更好统计
从1到6年级,小学毕业....作为字段。
而把年龄放成记录。

用oracle分析函数,实现起来就比原样式容易 多了
 
后退
顶部