| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2967 人关注过本帖
标题:高分请教,有个问题需要请教,高手进。
只看楼主 加入收藏
haode121
Rank: 2
等 级:论坛游民
帖 子:22
专家分:19
注 册:2016-5-11
收藏
得分:0 
回复 11楼 sdta
您好,我又重新做了个新的数据库,麻烦您帮忙看一下
2016-06-19 11:58
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9809
专家分:26987
注 册:2012-2-5
收藏
得分:0 
以下是引用haode121在2016-6-19 11:55:58的发言:

您好,那个专业分和总分是不是填错了,您Q多少,我详细问您一下。可以吗

可能是你说明文件中错误造成的。
前面结果表中显示的总分与专业分,没有实际意义,可忽略不计。

坚守VFP最后的阵地
2016-06-19 12:02
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9809
专家分:26987
注 册:2012-2-5
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

坚守VFP最后的阵地
2016-06-19 12:05
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9809
专家分:26987
注 册:2012-2-5
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

坚守VFP最后的阵地
2016-06-19 12:08
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
收藏
得分:0 
Set EngineBehavior 70

*!*    1. 先计算批次:
Select *, 0 As Id  From 分数统计表 Into Cursor Query1 Readwrite
Select Query1

*!*    文史
Replace All Id With 1, 批次 With '一本' For 科类 = '文史' And 总分 >= 548
Replace All Id With 2, 批次 With '二本' For 科类 = '文史' And Between(总分, 404, 547)
Replace All Id With 3, 批次 With '专科' For 科类 = '文史' And Between(总分, 200, 403)

*!*    理工
Replace All Id With 1, 批次 With '一本' For 科类 = '理工' And 总分 >= 544
Replace All Id With 2, 批次 With '二本' For 科类 = '理工' And Between(总分, 404, 543)
Replace All Id With 3, 批次 With '专科' For 科类 = '理工' And Between(总分, 200, 403)

*!*    声乐文/声乐理
Replace All Id With 1, 批次 With '一本' For Alltrim(科类) $ '声乐文|声乐理' And 总分 >= 308             And 专业分 >= 127   
Replace All Id With 2, 批次 With '二本' For Alltrim(科类) $ '声乐文|声乐理' And Between(总分, 300, 307) And 专业分 >= 115
Replace All Id With 3, 批次 With '专科' For Alltrim(科类) $ '声乐文|声乐理' And Between(总分, 160, 299) And 专业分 >= 115

*!*    器乐文/器乐理
Replace All Id With 1, 批次 With '一本' For Alltrim(科类) $ '器乐文|器乐理' And 总分 >= 308             And 专业分 >= 110
Replace All Id With 2, 批次 With '二本' For Alltrim(科类) $ '器乐文|器乐理' And Between(总分, 285, 307) And 专业分 >= 110
Replace All Id With 3, 批次 With '专科' For Alltrim(科类) $ '器乐文|器乐理' And Between(总分, 160, 284) And 专业分 >= 110

*!*    美术文/美术理
Replace All Id With 1, 批次 With '一本' For Alltrim(科类) $ '美术文|美术理' And 总分 >= 308             And 专业分 >= 210
Replace All Id With 2, 批次 With '二本' For Alltrim(科类) $ '美术文|美术理' And 总分 >= 308             And 专业分 >= 180
Replace All Id With 3, 批次 With '专科' For Alltrim(科类) $ '美术文|美术理' And Between(总分, 160, 307) And 专业分 >= 160


*!*    2. 然后统计:
Select 学校, 批次, ;
    Sum(Iif(科类 = '理工', 1, 0)) As 理工, ;
    Sum(Iif(科类 = '文史', 1, 0)) As 文史, ;
    Sum(Iif(科类 = '声乐文', 1, 0)) As 声乐文, ;
    Sum(Iif(科类 = '器乐文', 1, 0)) As 器乐文, ;
    Sum(Iif(科类 = '美术文', 1, 0)) As 美术文, ;
    Sum(Iif(科类 = '声乐理', 1, 0)) As 声乐理, ;
    Sum(Iif(科类 = '器乐理', 1, 0)) As 器乐理, ;
    Sum(Iif(科类 = '美术理', 1, 0)) As 美术理, ;
    Cnt(*) As 文理合计 ;
    Group By 学校, ID Order By 学校, ID ;
    Where ID > 0 ;
    From Query1

Return
图片附件: 游客没有浏览图片的权限,请 登录注册

民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2016-06-19 16:20
haode121
Rank: 2
等 级:论坛游民
帖 子:22
专家分:19
注 册:2016-5-11
收藏
得分:0 
回复 25楼 aaaaaa
谢谢您,这个好像没有区别应届生,往届生。不过还是非常感谢您

[此贴子已经被作者于2016-6-19 19:18编辑过]

2016-06-19 19:05
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
收藏
得分:15 
25 楼更正:
Set EngineBehavior 70

*!*    1. 先计算批次:
Select *, 0 As Id  From 分数统计表 Into Cursor Query1 Readwrite
Select Query1

*!*    文史
Replace All Id With 1, 批次 With '一本' For 科类 = '文史' And 总分 >= 548
Replace All Id With 2, 批次 With '二本' For 科类 = '文史' And Between(总分, 404, 547)
Replace All Id With 3, 批次 With '专科' For 科类 = '文史' And Between(总分, 200, 403)

*!*    理工
Replace All Id With 1, 批次 With '一本' For 科类 = '理工' And 总分 >= 544
Replace All Id With 2, 批次 With '二本' For 科类 = '理工' And Between(总分, 335, 543)
Replace All Id With 3, 批次 With '专科' For 科类 = '理工' And Between(总分, 200, 334)

*!*    声乐文/声乐理
Replace All Id With 1, 批次 With '一本' For Alltrim(科类) $ '声乐文|声乐理' And 总分 >= 308             And Between(专业分, 127, 999)   
Replace All Id With 2, 批次 With '二本' For Alltrim(科类) $ '声乐文|声乐理' And Between(总分, 300, 307) And Between(专业分, 115, 126)
Replace All Id With 3, 批次 With '专科' For Alltrim(科类) $ '声乐文|声乐理' And Between(总分, 160, 299) And Between(专业分, 115, 126)

*!*    器乐文/器乐理
Replace All Id With 1, 批次 With '一本' For Alltrim(科类) $ '器乐文|器乐理' And 总分 >= 308             And 专业分 >= 110
Replace All Id With 2, 批次 With '二本' For Alltrim(科类) $ '器乐文|器乐理' And Between(总分, 285, 307) And 专业分 >= 110
Replace All Id With 3, 批次 With '专科' For Alltrim(科类) $ '器乐文|器乐理' And Between(总分, 160, 284) And 专业分 >= 110

*!*    美术文/美术理
Replace All Id With 1, 批次 With '一本' For Alltrim(科类) $ '美术文|美术理' And 总分 >= 308             And Between(专业分, 210, 999)
Replace All Id With 2, 批次 With '二本' For Alltrim(科类) $ '美术文|美术理' And 总分 >= 308             And Between(专业分, 180, 209)
Replace All Id With 3, 批次 With '专科' For Alltrim(科类) $ '美术文|美术理' And Between(总分, 160, 307) And Between(专业分, 160, 179)


*!*    2. 然后统计:
Select 学校, 批次, 考生类别, ;
    Sum(Iif(科类 = '理工', 1, 0)) As 理工, ;
    Sum(Iif(科类 = '文史', 1, 0)) As 文史, ;
    Sum(Iif(科类 = '声乐文', 1, 0)) As 声乐文, ;
    Sum(Iif(科类 = '器乐文', 1, 0)) As 器乐文, ;
    Sum(Iif(科类 = '美术文', 1, 0)) As 美术文, ;
    Sum(Iif(科类 = '声乐理', 1, 0)) As 声乐理, ;
    Sum(Iif(科类 = '器乐理', 1, 0)) As 器乐理, ;
    Sum(Iif(科类 = '美术理', 1, 0)) As 美术理, ;
    Cnt(*) As 文理合计 ;
    Group By 学校, 考生类别, ID Order By 学校, 考生类别, ID ;
    Where ID > 0 ;
    From Query1

民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2016-06-19 22:41
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
收藏
得分:0 
方法 2 :
*!*    区别应届生,往届生,一句 SQL - Select 语句

Set EngineBehavior 70

*!*    1. 把录取分先导入到一个表中:
Create Cursor 录取分 (Id I, 科类 C(6), 批次 C(4), 总分高 I, 总分低 I, 专业分高 I, 专业分低 I)
Insert Into 录取分 Values (1, "文史", "一本", 999, 548, 0, 0)
Insert Into 录取分 Values (2, "文史", "二本", 547, 404, 0, 0)
Insert Into 录取分 Values (3, "文史", "专科", 403, 200, 0, 0)
Insert Into 录取分 Values (1, "理工", "一本", 999, 544, 0, 0)
Insert Into 录取分 Values (2, "理工", "二本", 543, 335, 0, 0)
Insert Into 录取分 Values (3, "理工", "专科", 334, 200, 0, 0)
Insert Into 录取分 Values (1, "声乐文", "一本", 999, 308, 999, 127)
Insert Into 录取分 Values (2, "声乐文", "二本", 307, 300, 126, 115)
Insert Into 录取分 Values (3, "声乐文", "专科", 299, 160, 126, 115)
Insert Into 录取分 Values (1, "声乐理", "一本", 999, 308, 999, 127)
Insert Into 录取分 Values (2, "声乐理", "二本", 307, 300, 126, 115)
Insert Into 录取分 Values (3, "声乐理", "专科", 299, 160, 126, 115)
Insert Into 录取分 Values (1, "器乐文", "一本", 999, 308, 999, 110)
Insert Into 录取分 Values (2, "器乐文", "二本", 307, 285, 999, 110)
Insert Into 录取分 Values (3, "器乐文", "专科", 284, 160, 999, 110)
Insert Into 录取分 Values (1, "器乐理", "一本", 999, 308, 999, 110)
Insert Into 录取分 Values (2, "器乐理", "二本", 307, 285, 999, 110)
Insert Into 录取分 Values (3, "器乐理", "专科", 284, 160, 999, 110)
Insert Into 录取分 Values (1, "美术文", "一本", 999, 308, 999, 210)
Insert Into 录取分 Values (2, "美术文", "二本", 999, 308, 209, 180)
Insert Into 录取分 Values (3, "美术文", "专科", 307, 160, 179, 160)
Insert Into 录取分 Values (1, "美术理", "一本", 999, 308, 999, 210)
Insert Into 录取分 Values (2, "美术理", "二本", 999, 308, 209, 180)
Insert Into 录取分 Values (3, "美术理", "专科", 307, 160, 179, 160)


*!*    2. 然后用一句 SQL 语句,把两个表 As 连接, :
Select T1.学校, T2.批次, T1.考生类别 应届, ;
    Sum(Iif(T1.科类 = '理工'  , 1, 0)) As 理工  , ;
    Sum(Iif(T1.科类 = '文史'  , 1, 0)) As 文史  , ;
    Sum(Iif(T1.科类 = '声乐文', 1, 0)) As 声乐文, ;
    Sum(Iif(T1.科类 = '器乐文', 1, 0)) As 器乐文, ;
    Sum(Iif(T1.科类 = '美术文', 1, 0)) As 美术文, ;
    Sum(Iif(T1.科类 = '声乐理', 1, 0)) As 声乐理, ;
    Sum(Iif(T1.科类 = '器乐理', 1, 0)) As 器乐理, ;
    Sum(Iif(T1.科类 = '美术理', 1, 0)) As 美术理, ;
    Cnt(*) As 文理合计 ;
    Where T1.科类 = T2.科类 And Between(T1.总分, T2.总分低, T2.总分高) And ;
    Between(T1.专业分, T2.专业分低, T2.专业分高) ;
    Group By T1.学校, T1.考生类别, Id Order By T1.学校, T1.考生类别, Id ;
    From 分数统计表 T1, 录取分 T2

民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2016-06-19 22:43
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
收藏
得分:0 
如果应届生,往届生是第一级分类的,分组可以这样:

Group By T1.考生类别, T1.学校, Id Order By T1.考生类别, T1.学校,Id

试试看

民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2016-06-19 23:02
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11785
专家分:43421
注 册:2006-5-13
收藏
得分:0 
以下是引用haode121在2016-6-19 06:54:12的发言:

关键是还得把总表分成十几个小表,小表再挨个统计。

统计时加上条件不就可以实现了么,没有必要折分表来统计的。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2016-06-20 06:24
快速回复:高分请教,有个问题需要请教,高手进。
数据加载中...
 
   



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

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