标题:超级难,不会筛选
只看楼主
chuxue
Rank: 1
等 级:新手上路
帖 子:78
专家分:4
注 册:2008-1-22
结帖率:64.29%
 问题点数:0 回复次数:8 
超级难,不会筛选
问题的字数太多,我做了一个文本,请详看压缩包,不管会不会都要谢谢您

例表.rar (1.86 KB)
搜索更多相关主题的帖子: 超级 筛选 字数 文本 压缩 
2008-07-15 14:25
lclmf
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-6-19
得分:0 
一个笨方法
先编个小程序把每个人的各科等第(=等级?)分类进行统计:*个A,*个B,*个C,*个D,*个Y,*个N,*个-,将结果输入到新数据库中。然后根据你的需要在新库中查询结果。
2008-07-15 17:49
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
得分:0 
select 准考证号,姓名,身份证号,政治等第+语文等第+数学等第+物理等第+化学等第+外语等第+历史等第+地理等第+生物等第+信息等第 等第 from 例表 into cursor t1
select 准考证号,姓名,身份证号 from t1 where occurs('A',等第)=10
select 准考证号,姓名,身份证号 from t1 where occurs('A',等第)>=7
select 准考证号,姓名,身份证号 from t1 where occurs('A',等第)=9 and occurs('B',等第)=1
select 准考证号,姓名,身份证号 from t1 where occurs('A',等第)=8 and occurs('B',等第)=2
select 准考证号,姓名,身份证号 from t1 where occurs('A',等第)=1 and occurs('B',等第)=1 and occurs('C',等第)=8
select 准考证号,姓名,身份证号 from t1 where occurs('A',等第)=3 and occurs('B',等第)=3 and occurs('C',等第)=1
select 准考证号,姓名,身份证号 from t1 where occurs('A',等第)=2 and occurs('B',等第)=3 and occurs('C',等第)=1 and occurs('D',等第)=2

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2008-07-16 10:03
chuxue
Rank: 1
等 级:新手上路
帖 子:78
专家分:4
注 册:2008-1-22
得分:0 
回复 3# Tiger5392 的帖子
佩服的真是五体投地,你真牛!!!
2008-07-16 15:27
chuxue
Rank: 1
等 级:新手上路
帖 子:78
专家分:4
注 册:2008-1-22
得分:0 
回复 2# lclmf 的帖子
谢谢您
2008-07-16 15:29
iadmirevancogh
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2007-12-18
得分:0 
牛啊,辛苦了,楼主,顶起!!!!!!!
2008-07-16 15:31
xtbgl1978
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-9-9
得分:0 
确实不错,
sql 没有解决不了的问题,只是我们没有想到而已!!
2008-09-09 19:56
szy345
Rank: 4
来 自:江苏——南京
等 级:贵宾
威 望:14
帖 子:336
专家分:14
注 册:2008-8-6
得分:0 
[bo][un]Tiger5392[/un] 在 2008/7/16 10:03 的发言:[/bo]

select 准考证号,姓名,身份证号,政治等第+语文等第+数学等第+物理等第+化学等第+外语等第+历史等第+地理等第+生物等第+信息等第 等第 from 例表 into cursor t1


顶,这句很有个性!简化了不少语句!
2008-09-09 21:17
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
程序代码:
SELECT 身份证号,姓名, [政治] 课程,政治等第 等级,1 BZ FROM 例表 ;
UNION ALL SELECT 身份证号,姓名, [语文],语文等第,1 BZ FROM 例表 ;
UNION ALL SELECT 身份证号,姓名, [数学],数学等第,1 BZ FROM 例表 ;
UNION ALL SELECT 身份证号,姓名, [物理],物理等第,1 BZ FROM 例表 ;
UNION ALL SELECT 身份证号,姓名, [化学],化学等第,1 BZ FROM 例表 ;
UNION ALL SELECT 身份证号,姓名, [外语],外语等第,1 BZ FROM 例表 ;
UNION ALL SELECT 身份证号,姓名, [历史],历史等第,1 BZ FROM 例表 ;
UNION ALL SELECT 身份证号,姓名, [地理],地理等第,1 BZ FROM 例表 ;
UNION ALL SELECT 身份证号,姓名, [生物],生物等第,1 BZ FROM 例表 ;
UNION ALL SELECT 身份证号,姓名, [信息],信息等第,1 BZ FROM 例表 INTO CURSOR T1
SELECT 身份证号,姓名,SUM(IIF(等级=[A],BZ,0)) A,SUM(IIF(等级=[B],BZ,0)) B ;
,SUM(IIF(等级=[C],BZ,0)) C,SUM(IIF(等级=[D],BZ,0)) D,SUM(IIF(等级=[-],BZ,0)) 缺考 ;
FROM T1 GROUP BY 1,2 ORDER BY 3 DESC,4 DESC,5 DESC,6 DESC,7 DESC
效果图

如果数据量大的话,OCCURS()查询速度是很慢的
大家可以试试,这两种方法的查询速度。

[ 本帖最后由 sdta 于 2014-3-23 15:03 编辑 ]

坚守VFP最后的阵地
2014-03-23 14:50



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




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

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