| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 550 人关注过本帖
标题:请教:纵向比较,上下二条记录相同,则在次数字段中填上2,不相同则填上1, ...
只看楼主 加入收藏
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1487
专家分:162
注 册:2006-6-3
结帖率:79.2%
  已结贴   问题点数:20  回复次数:8   
请教:纵向比较,上下二条记录相同,则在次数字段中填上2,不相同则填上1,我的代码中第一条记录的次数中为空?
请教:纵向比较,上下二条记录相同,则在次数字段中填上2,不相同则填上1,我的代码运行结果中第一条记录的次数中为空?如何修改?请指教
代码如下:
use ls
scan
t1=dm
SKIP
t2=dm
IF t1<>t2
REPLACE 次数 WITH "1"
dm=t1
ELSE
skip-1
REPLACE 次数 WITH "2"
skip
REPLACE 次数 WITH "2"
dm=t2
 ENDIF
 skip-1
 Endscan

为什么第一条记录中次数为空?

附上数据库与代码,请指教。
附件: 您没有浏览附件的权限,请 登录注册
2017-08-16 11:41
sdta
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:164
帖 子:7165
专家分:16851
注 册:2012-2-5
  得分:0 
程序代码:
create cursor tt (dm c(7),次数 c(1))
insert into tt (dm) values ("6509070")
insert into tt (dm) values ("6509071")
insert into tt (dm) values ("6509072")
insert into tt (dm) values ("6509072")
insert into tt (dm) values ("6509073")
insert into tt (dm) values ("6509073")
insert into tt (dm) values ("6509074")
insert into tt (dm) values ("6509075")
insert into tt (dm) values ("6509075")
insert into tt (dm) values ("6509076")
insert into tt (dm) values ("6509077")
insert into tt (dm) values ("6509077")
t1=""
scan
    t2=dm
    IF t1<>t2
        REPLACE 次数 WITH "1"
    ELSE
        REPLACE record recno() 次数 WITH "2"
        REPLACE record recno()-1 次数 WITH "2"
        skip
    ENDIF
    t1=dm
Endscan
browse


[此贴子已经被作者于2017-8-16 12:21编辑过]


坚守VFP最后的阵地
2017-08-16 12:18
sdta
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:164
帖 子:7165
专家分:16851
注 册:2012-2-5
  得分:20 
create cursor tt (dm c(7),次数 c(1))
insert into tt (dm) values ("6509070")
insert into tt (dm) values ("6509070")

insert into tt (dm) values ("6509071")
insert into tt (dm) values ("6509072")
insert into tt (dm) values ("6509072")
insert into tt (dm) values ("6509073")
insert into tt (dm) values ("6509073")
insert into tt (dm) values ("6509074")
insert into tt (dm) values ("6509075")
insert into tt (dm) values ("6509075")
insert into tt (dm) values ("6509076")
insert into tt (dm) values ("6509077")
insert into tt (dm) values ("6509077")
insert into tt (dm) values ("6509078")
t1=""
scan
    t2=dm
    IF t1<>t2
        REPLACE 次数 WITH "1"
    ELSE
        REPLACE record recno() 次数 WITH "2"
        REPLACE record recno()-1 次数 WITH "2"
        skip
    ENDIF
    t1=dm
Endscan
browse

[此贴子已经被作者于2017-8-16 12:30编辑过]


坚守VFP最后的阵地
2017-08-16 12:26
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1487
专家分:162
注 册:2006-6-3
  得分:0 
sdta :
 谢谢指教!
 但有一个不足,如果dm没有按序排列的话,以下二句代码:
         REPLACE record recno() 次数 WITH "2"
        REPLACE record recno()-1 次数 WITH "2"
就不行了。
必须索引并生成一个新库后才能用。
我改了一下
USE ls
INDEX on dm TO ls
t1=""
scan
    t2=dm
    IF t1<>t2
        REPLACE 次数 WITH "1"
    ELSE
       * REPLACE record recno() 次数 WITH "2"
        *REPLACE record recno()-1 次数 WITH "2"
        REPLACE 次数 WITH "2"
        SKIP -1
         REPLACE 次数 WITH "2"
        skip
    ENDIF
    t1=dm
Endscan
browse

[此贴子已经被作者于2017-8-16 13:55编辑过]

2017-08-16 13:12
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:78
帖 子:2502
专家分:6087
注 册:2015-3-25
  得分:0 
楼主,要这个的目的是什么
2017-08-16 13:29
sdta
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:164
帖 子:7165
专家分:16851
注 册:2012-2-5
  得分:0 
以下是引用sylknb在2017-8-16 13:12:31的发言:

sdta :
 谢谢指教!
 但有一个不足,如果dm没有按序排列的话,以下二句代码:
         REPLACE record recno() 次数 WITH "2"
        REPLACE record recno()-1 次数 WITH "2"
就不行了。
必须索引并生成一个新库后才能用。

车到山前必有路,船到桥头自然直。

坚守VFP最后的阵地
2017-08-16 13:54
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1487
专家分:162
注 册:2006-6-3
  得分:0 
以下是引用sdta在2017-8-16 13:54:23的发言:

 
车到山前必有路,船到桥头自然直。
谢谢你的指教 !
我照样画芦改了一下。

[此贴子已经被作者于2017-8-16 13:58编辑过]

2017-08-16 13:57
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:151
帖 子:6011
专家分:26277
注 册:2014-5-20
  得分:0 

USE ls ALIAS ls
? "总记录数:", RECCOUNT()
SELECT DISTINCT *, 0 tj FROM ls INTO CURSOR tmp READWRITE
SELECT tmp
INDEX on dm TAG dm
SELECT ls
SET RELATION TO dm INTO "tmp"
REPLACE tmp.tj WITH tmp.tj+1 ALL
REPLACE ls.次数 WITH TRANSFORM(tmp.tj) ALL
SET RELATION TO
COUNT FOR 次数=="1" TO n
? "次数==1记录数:", n
COUNT FOR 次数=="2" TO n
? "次数==2记录数:", n
COUNT FOR 次数=="3" TO n
? "次数==3记录数:", n
COUNT FOR !INLIST(次数,"1","2","3") TO n
? "其他次数记录数:", n
**BROWSE FOR 次数=="3"
2017-08-16 14:42
红星二锅头
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:396
专家分:596
注 册:2016-8-25
  得分:0 

团队红星二锅头,队长王猛,领队李冲,顾问杨伟,副队张挺,外联马彪,内勤韩秀,人事顾闯,财务赵魁,后勤周强
2017-08-16 19:57







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

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