| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1130 人关注过本帖, 2 人收藏
标题:如何实现求各学校各分数段人数
只看楼主 加入收藏
烟花三月红
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-7-28
结帖率:50%
收藏(2)
已结贴  问题点数:20 回复次数:16 
如何实现求各学校各分数段人数
fs141715 - 副本.rar (61.49 KB)


我想统计每个学校各分数段上线人数,在一个表里显示,求教下该如何做
如 sele coun(*) as 大于500分,xx from fs141715 group by xx where zf>500
上面这个命令只能显示大于500分的,我想实现下面的功能,在一个表上显示几个分数段的人数
大于500分    大于400分    大于300分    学校(xxdm)
100           200          300          01
40            50            60          02
30            50            60          03
搜索更多相关主题的帖子: where 300分 400分 如何 学校 
2014-04-19 18:06
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
如果你真要那麽懶,就把這條語句分別寫3次,得到結果後填入表中。數據量不是非常大的話,把耗費一次的時間翻倍成三倍,也仍然可以忍受。省了編碼的時間,當然要用運行時間和效率來彌補,上帝很公平的。

[ 本帖最后由 TonyDeng 于 2014-4-19 18:14 编辑 ]

授人以渔,不授人以鱼。
2014-04-19 18:08
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
回复 楼主 烟花三月红
一句就行

楼下

[ 本帖最后由 tlliqi 于 2014-4-19 18:44 编辑 ]
2014-04-19 18:40
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:5 
sele sum(iif(zf>500,1,0)) 大于500分,sum(iif(zf>400,1,0)) 大于400分,sum(iif(zf>300,1,0)) 大于300分,xxdm 学校 from fs141715 group by xxdm 
楼主可能是要这样的
收到的鲜花
  • 烟花三月红2014-04-19 19:11 送鲜花  2朵   附言:我很赞同
2014-04-19 18:44
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:654
专家分:2167
注 册:2014-2-7
收藏
得分:0 
回复 4 楼 tlliqi
完全同意!

泉城飞狐
2014-04-19 18:55
烟花三月红
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-7-28
收藏
得分:0 
版主都出面了,试试,完全符合初始想法,感谢大家的热心帮助
2014-04-19 19:03
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9831
专家分:27165
注 册:2012-2-5
收藏
得分:0 
程序代码:
Select xxdm,Sum(Iif(zf>500,1,0)) 大于500,Sum(Iif(Between(zf,401,500),1,0)) 大于400,Sum(Iif(Between(zf,301,400),1,0)) 大于300,Sum(Iif(Between(zf,0,300),1,0)) 小于等于300,0000 小计 From fs Group By xxdm Into Cursor tjb readwrite
lcStr=""
Insert Into tjb (xxdm) Values ('合计')
For lnI=2 To Fcount('tjb')
    Sum Evaluate(Field(lnI)) To mSum
    Replace Record Reccount() (Field(lnI)) With mSum
    lcStr=lcStr+Field(lnI)+Iif(lnI<Fcount('tjb'),"+","")
Endfor
Scan
   Replace 小计 With Evaluate(lcStr)
Endscan 

BROWSE
图片附件: 游客没有浏览图片的权限,请 登录注册
收到的鲜花
  • 烟花三月红2014-04-19 21:24 送鲜花  2朵   附言:我很赞同

坚守VFP最后的阵地
2014-04-19 19:10
烟花三月红
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-7-28
收藏
得分:0 
回复 7 楼 sdta
谢谢
2014-04-19 19:12
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9831
专家分:27165
注 册:2012-2-5
收藏
得分:0 
SELECT-SQL代码有一个缺点,就是当分数段较多时,就会写N个 SUM(),代码可读性较差,建议楼主用其它方法解决这个问题

坚守VFP最后的阵地
2014-04-19 19:14
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
如果不寫出如此晦澀難懂的代碼,又怎顯得高明?重覆3次都比硬擠在一行可讀性好,可修改性也強。

授人以渔,不授人以鱼。
2014-04-19 19:38
快速回复:如何实现求各学校各分数段人数
数据加载中...
 
   



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

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