标题:查询字段中指定的值和它的 下一行记录
只看楼主
yd1954
Rank: 2
来 自:辽宁沈阳
等 级:论坛游民
帖 子:143
专家分:21
注 册:2016-7-1
结帖率:100%
已结贴  问题点数:80 回复次数:16 
查询字段中指定的值和它的 下一行记录
各位老师好!
发过去一个表:k1
求:表中n1字段中指定的值和它的下一行的查询程序。

例如,n1中,=91的有5个,我用 select n1 from k1 where n1=91 查询,只能显示=91的5条记录。
我想在查询结果中看到=91的全部记录,同时也看到每个91的下一行记录。
 请各位老师帮忙。
谢谢!






k1.zip (27.24 KB)
搜索更多相关主题的帖子: 查询 字段 指定 记录 一行 
2021-11-26 12:00
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
表查询+数组

坚守VFP最后的阵地
2021-11-26 13:09
yd1954
Rank: 2
来 自:辽宁沈阳
等 级:论坛游民
帖 子:143
专家分:21
注 册:2016-7-1
得分:0 
回复 2楼 sdta
sdta老师你好!
感谢你的帮助。你的“表查询+数组”,在我的脑中没有一点思路。请你写出代码。
谢谢!
2021-11-26 13:23
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:54
帖 子:802
专家分:1914
注 册:2015-12-30
得分:10 
需要先做一次加工,把记录号变成字段
SELECT RECNO() rec,* FROM k1 INTO CURSOR xx1
SELECT * FROM xx1 WHERE n1=91 UNION ALL SELECT * FROM xx1 WHERE rec in (SELECT rec+1 FROM xx1 WHERE n1=91) ORDER BY rec
2021-11-26 13:30
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:108
帖 子:2175
专家分:3785
注 册:2007-4-27
得分:0 
以下是引用laowan001在2021-11-26 13:30:28的发言:

需要先做一次加工,把记录号变成字段
SELECT RECNO() rec,* FROM k1 INTO CURSOR xx1
SELECT * FROM xx1 WHERE n1=91 UNION ALL SELECT * FROM xx1 WHERE rec in (SELECT rec+1 FROM xx1 WHERE n1=91) ORDER BY rec

我试了下 ,提示 order by rec 子句无效, 去掉子句可以执行。 win7+vfp8.0

只求每天有一丁点儿的进步就可以了
2021-11-26 14:17
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:54
帖 子:802
专家分:1914
注 册:2015-12-30
得分:0 
回复 5楼 wengjl
我是VFP9,没报错
如果需要排序的话,先存到表里,然后再排序就行
2021-11-26 14:42
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 

程序代码:
USE k1 IN 0 ALIAS a
USE k1 IN 0 ALIAS b AGAIN
SELECT a
SET RELATION TO RECNO()+1 INTO "b"
LIST FIELDS a.n1,b.n1,RECNO("b") FOR a.n1==91
2021-11-26 15:08
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:54
帖 子:802
专家分:1914
注 册:2015-12-30
得分:0 
回复 5楼 wengjl
如果不排序的话,n1=91的在前面,所有“下一条”记录在后面,这样可能不满足你的要求
2021-11-26 15:32
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:108
帖 子:2175
专家分:3785
注 册:2007-4-27
得分:0 
这一句中用了三个 select 第一次见识。

只求每天有一丁点儿的进步就可以了
2021-11-26 16:25
yd1954
Rank: 2
来 自:辽宁沈阳
等 级:论坛游民
帖 子:143
专家分:21
注 册:2016-7-1
得分:0 
回复 4楼 laowan001
非常感谢laowan001老师的帮助。
运行很好。与手动统计结果一致。
基本上没看懂老师写的程序。
以后有问题还要请老师帮助。
再次感谢。
2021-11-27 10:25



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




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

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