| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 943 人关注过本帖
标题:最大“尾页号”和页号连续性的检测
只看楼主 加入收藏
wsj0608
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2014-10-25
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:15 
最大“尾页号”和页号连续性的检测
试验用.zip (1.88 KB)
[local]2[/local]
1.需要显示每卷最大“尾页号”。不要用“SELECT * FROM (表文件名)GROUP BY” 这个命令,好像不太适用。
 2.检测每卷的“页号”和“尾页号”,规则是如果第一条记录的“页号”为1,“尾页号”为3,那第二条记录的“页号”必须为4,两者之间的关系为“页号”必须比上一条记录的“尾页号”大“1”,就是当前记录的“尾页号”+1=上一条记录的“页号。显示不符合这一条件的记录。(“尾页号”是空的记录不在检测范围,可以在检测的时候过滤掉,但这些记录不能删除)
 3.检测每卷第一条的“首页号”,规则是只有每卷的第一条的“首页号”有记录,且必须为“1”,显示“首页号”记录里不符合这一条件的记录
 

[ 本帖最后由 wsj0608 于 2014-10-30 19:12 编辑 ]
搜索更多相关主题的帖子: 检测 
2014-10-30 18:50
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:3 
附件附不上来

授人以渔,不授人以鱼。
2014-10-30 19:00
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:3 
以下是引用TonyDeng在2014-10-30 19:00:09的发言:

附件附不上来
有附件的
2014-10-30 21:17
外部三电铃
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:那一年
等 级:贵宾
威 望:57
帖 子:2012
专家分:7306
注 册:2007-12-17
收藏
得分:3 
以下是引用tlliqi在2014-10-30 21:17:20的发言:

有附件的

是第二次编辑加上去的

那一年,苍井空还是处女
2014-10-30 22:14
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:3 
没搞懂楼主指的“每卷”是个什么概念,和卷号的关系是如何的。
2014-10-31 08:16
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43182
注 册:2014-5-20
收藏
得分:3 
改了一下结构,方便运算。
是不是这个意思?
程序代码:
USE 试验用.dbf ALIAS 数据表    && 结构:(卷号 C(5), 页号 I, 首页号 I, 尾页号 I)
CREATE CURSOR 问题1 (卷号 C(5), 页号 I, 首页号 I, 尾页号 I)
CREATE CURSOR 问题2 (卷号 C(5), 页号 I, 首页号 I, 尾页号 I)
CREATE CURSOR 问题3 (卷号 C(5), 页号 I, 首页号 I, 尾页号 I)

GO TOP IN "数据表"
m卷号 = 数据表.卷号
m尾页号 = 数据表.尾页号
IF 数据表.页号 != 1
    INSERT INTO 问题2 VALUES (数据表.卷号, 数据表.页号, 数据表.首页号, 数据表.尾页号)
ENDIF
IF 数据表.首页号 != 1
    INSERT INTO 问题3 VALUES (数据表.卷号, 数据表.页号, 数据表.首页号, 数据表.尾页号)
ENDIF
SKIP IN "数据表"
DO WHILE !EOF("数据表")
    IF 数据表.卷号 == m卷号
        IF 数据表.页号 != (m尾页号 + 1)
            INSERT INTO 问题2 VALUES (数据表.卷号, 数据表.页号, 数据表.首页号, 数据表.尾页号)
        ENDIF
    ELSE
        m卷号 = 数据表.卷号
        IF 数据表.页号 != 1
            INSERT INTO 问题2 VALUES (数据表.卷号, 数据表.页号, 数据表.首页号, 数据表.尾页号)
        ENDIF
        IF 数据表.首页号 != 1
            INSERT INTO 问题3 VALUES (数据表.卷号, 数据表.页号, 数据表.首页号, 数据表.尾页号)
        ENDIF
        SKIP -1 IN "数据表"
        INSERT INTO 问题1 VALUES (数据表.卷号, 数据表.页号, 数据表.首页号, 数据表.尾页号)
        SKIP IN "数据表"
    ENDIF
    m尾页号 = 数据表.尾页号
    SKIP IN "数据表"
ENDDO
SELECT 问题1
GO TOP 
BROWSE
SELECT 问题2
GO TOP 
BROWSE
SELECT 问题3
GO TOP 
BROWSE
CLOSE DATABASES
2014-10-31 10:04
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:3 
问题1
Select 卷号,Max(Padl(Alltrim(尾页号),3,"0")) FROM 试验用 GROUP BY 1
问题3
Select * From 试验用 Where 卷号 In (Select 卷号 From 试验用 Group By 卷号 Where Not Empty(首页号) Having Count(卷号)>1) and Alltrim(首页号)=="1"

[ 本帖最后由 sdta 于 2014-10-31 11:16 编辑 ]

坚守VFP最后的阵地
2014-10-31 10:30
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
就是当前记录的“尾页号”+1=上一条记录的“页号。

这是什么逻辑,看不懂

应该是当前记录的“尾页号”+1=一条记录的“页号”?

问题2
程序代码:
Select 卷号,页号,尾页号 From 试验用 Where Not Empty(尾页号) Into Cursor Temp
Select 卷号,页号,Recno() 标记 From Temp Into Cursor Temp1
Select 卷号,Padl(Int(Val(尾页号)+1),4,"0") 尾页号,Recno() 标记 From Temp Into Cursor Temp2
Select * From (Select A.卷号,页号,尾页号 From Temp1 A,Temp2 B Where A.标记-1=B.标记 And A.卷号==B.卷号) A Where 页号!=尾页号
上面一行代码可以分解为下面两行代码(主要是针对VFP6版本及初学者)
Select A.卷号,页号,尾页号 From Temp1 A,Temp2 B Where A.标记-1=B.标记 And A.卷号==B.卷号 Into Cursor Temp3
Select * From Temp3 Where 页号!=尾页号



[ 本帖最后由 sdta 于 2014-10-31 14:31 编辑 ]

坚守VFP最后的阵地
2014-10-31 11:19
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
已下载,过两天给你弄一下。

授人以渔,不授人以鱼。
2014-10-31 19:19
LXHDBCCN
Rank: 2
等 级:论坛游民
帖 子:15
专家分:18
注 册:2013-12-23
收藏
得分:3 
是不是父、子、兄、弟的关系差不多吧!与树的 PARENT,KEY,PREVI,NEXT,FIRST
2014-10-31 20:02
快速回复:最大“尾页号”和页号连续性的检测
数据加载中...
 
   



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

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