| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1765 人关注过本帖
标题:不生成新表,在一张表上排序 请教老师排序问题
只看楼主 加入收藏
baochenbc
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2015-1-9
结帖率:61.54%
收藏
已结贴  问题点数:20 回复次数:10 
不生成新表,在一张表上排序 请教老师排序问题
在一张表上对金额1和金额2进行排序 降序,生成金额1和金额2的顺序号

金额1  金额2   金额1顺序(降序)  金额2顺序(降序)
1       2          4                  3   
2       1          3                  4
3       4          2                  1
4       3          1                  2

谢谢
2017-01-06 12:17
baochenbc
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2015-1-9
收藏
得分:0 
USE 此表
INDEX on 金额1  TAG a1 desc
SET ORDER  TO tag a1
这样在浏览表确实是按金额1降序排
‘然后加’
replace 金额1顺序  with recn()
但是顺序不对
2017-01-06 12:21
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:4 
试试
INDEX on str(金额1)+str(金额2)  TAG a1 desc

坚守VFP最后的阵地
2017-01-06 12:32
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2232
专家分:3913
注 册:2007-4-27
收藏
得分:4 
中间用个过渡表,排序结果写回后删除,就实现了。这样符合你的要求吗?

只求每天有一丁点儿的进步就可以了
2017-01-06 12:32
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1790
专家分:3389
注 册:2012-2-29
收藏
得分:4 
与学生成绩排序一个道理,对吗?
2017-01-06 12:39
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:4 
以下是引用wengjl在2017-1-6 12:32:29的发言:

中间用个过渡表,排序结果写回后删除,就实现了。这样符合你的要求吗?

要是可以,就简单了。
SQL语句:(如果你表在 d:\test 中
select * from d:\test\你表 order by 金额1 desc,金额2 desc into table d:\test\你表.dbf
2017-01-06 13:30
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
以下是引用baochenbc在2017-1-6 12:21:36的发言:

USE 此表
INDEX on 金额1  TAG a1 desc
SET ORDER  TO tag a1
这样在浏览表确实是按金额1降序排
‘然后加’
replace 金额1顺序  with recn()
但是顺序不对

排序,是排好了,但记录号,是不变的。

CREATE CURSOR tb(金额1 n(5,2),金额2 n(5,2),序号 i)
INSERT INTO tb(金额1,金额2,序号) VALUES(1,11,1)
INSERT INTO tb(金额1,金额2,序号) VALUES(2,22,2)
INSERT INTO tb(金额1,金额2,序号) VALUES(3,33,3)
BROWSE
INDEX on 金额1 TAG a1 desc
BROWSE
GO 1
BROWSE &&还是定位在 序号=1上的。
2017-01-06 13:38
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
clear
CLOSE DATABASES
CREATE TABLE c:\tb(金额1 n(5,2),金额2 n(5,2),序号 i)
INSERT INTO tb(金额1,金额2,序号) VALUES(1,11,1)
INSERT INTO tb(金额1,金额2,序号) VALUES(2,22,2)
INSERT INTO tb(金额1,金额2,序号) VALUES(3,33,3)
SELECT tb
GO TOP
?"索引前 SCAN "
SCAN
?金额1,金额2,序号,"记录号=",RECNO()
ENDSCAN

INDEX on 金额1 TAG a1 DESCENDING

SELECT tb
GO TOP

?"索引后 SCAN "
SCAN
?金额1,金额2,序号,"记录号=",RECNO()
ENDSCAN
图片附件: 游客没有浏览图片的权限,请 登录注册
2017-01-06 13:59
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
2017-01-06 14:18
星光悠蓝
Rank: 9Rank: 9Rank: 9
来 自:山水甲天下
等 级:贵宾
威 望:52
帖 子:527
专家分:1281
注 册:2010-1-11
收藏
得分:4 
高深莫测的排序!
一个排序也能搞得这么复杂!
2017-01-06 15:11
快速回复:不生成新表,在一张表上排序 请教老师排序问题
数据加载中...
 
   



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

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