标题:组合查询
取消只看楼主
ghelycao
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2018-3-29
结帖率:80%
已结贴  问题点数:10 回复次数:4 
组合查询



各位大神,在附件的表中,当在A,B,C中任意输入数据后点查询,查询满足A值在A下限和A上限之间、B在B上限和B下限之间、C在C下限和上限之间。且A,B,C可以为空值。请问代码如何写啊。
搜索更多相关主题的帖子: 组合 查询 数据 为空 代码 
2018-04-19 20:41
ghelycao
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2018-3-29
得分:0 
比如在A中输入一个值,如果这个值在表中A的下限和A的上限范围内,则输出满足条件的记录,同理B,C一样。且A,B,C是并的关系,不是或的关系。但是如果B或C中为空值时,则忽略B,C的条件限制。
2018-04-19 21:56
ghelycao
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2018-3-29
得分:0 
回复 4楼 mywisdom88
A,B,C中其中一个或多个为空时,则该空值不作为查询条件。如果采用or的话,则查询结果不同
2018-04-24 21:06
ghelycao
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2018-3-29
得分:0 
回复 6楼 mywisdom88
非常感谢版主的答复,如何将查询结果输出到一个临时表中(VFP9),我试了一下,结果不对。仅仅最后的代码做了修改。代码如下:
cWhere = ""
if !empty(a值)
   cWhere = "between(a值,a下限,a上限)"
endif
if !empty(b值)
   cWhere = iif(empty(cWhere),"between(b值,b下限,b上限)", cWhere + " and between(b值,b下限,b上限)")
endif
if !empty(c值)
   cWhere = iif(empty(cWhere),"between(c值,c下限,c上限)", cWhere + " and between(c值,c下限,c上限)")
endif
if !empty(cWhere)
   cWhere = " where " + cWhere
endif

SELECT * FROM 表名 cWhere into cursor 临时表
thisform.grid1.recordsource="临时表"


2018-05-02 20:40
ghelycao
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2018-3-29
得分:0 
回复 9楼 mywisdom88
已解决,谢谢版主的详细讲解,非常感谢!通过版主的讲解,我觉得以后各类查询都不是问题了,
2018-05-05 11:25



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




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

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