| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1322 人关注过本帖, 2 人收藏
标题:查看某个字段中,某一地址的前3条数据,如何写命令?
只看楼主 加入收藏
qingfameng
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:35
帖 子:964
专家分:3019
注 册:2010-2-6
收藏
得分:0 
回复:你说的对!!我也考虑到,如果‘DZ’的重复次数少于3个的,也不能漏掉,才这样做的。如果 DZ 内的记录,其重复次数都是 >=3 的,那么,我的几句代码也应该适合。但是,如果 DZ 内的记录,其重复次数是不固定的,而且还要只找出:重复次数 >=3 时的记录中,只取前 3 条,那么我的代码肯定就不行了。你看一下,如果先把重复次数少于3次的记录去掉,再选取重复的前 3 条记录,这样做是否可以?(代码的第3句:sele 一句,换成下面一句,去掉重复次数少于3次的)
select * from 表名,(select dz from 表名 group by 1 having cnt(*)>2 ) a ;
where 表名.dz=a.dz into table bbb order by dz

[ 本帖最后由 qingfameng 于 2012-2-16 21:23 编辑 ]
2012-02-16 21:16
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
以下是引用qingfameng在2012-2-16 21:16:28的发言:

回复:你说的对!!我也考虑到,如果‘DZ’的重复次数少于3个的,也不能漏掉,才这样做的。如果 DZ 内的记录,其重复次数都是 >=3 的,那么,我的几句代码也应该适合。但是,如果 DZ 内的记录,其重复次数是不固定的,而且还要只找出:重复次数 >=3 时的记录中,只取前 3 条,那么我的代码肯定就不行了。你看一下,如果先把重复次数少于3次的记录去掉,再选取重复的前 3 条记录,这样做是否可以?(代码的第3句:sele 一句,换成下面一句,去掉重复次数少于3次的)
select * from 表名,(select dz from 表名 group by 1 having cnt(*)>2 ) a ;
where 表名.dz=a.dz into table bbb order by dz
提示:语法错误
换成这个试下
select space(10) as no,* from t a order by dz where;
 exists (select * from t b where b.dz==a.dz group by dz having count(*)>2) into table bbb

[ 本帖最后由 sdta 于 2012-2-16 22:06 编辑 ]

坚守VFP最后的阵地
2012-02-16 21:25
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
以下是引用茵梦湖在2012-2-15 14:38:09的发言:



建议去看一下 sql的用法, 很简单的~~   9.0版, 1句代码即可~
你就

[ 本帖最后由 sdta 于 2012-2-16 22:05 编辑 ]

坚守VFP最后的阵地
2012-02-16 21:58
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
取某一地址的前三条数据.rar (897 Bytes)


结合“软件服务”及“QINGFAMENG”两位大师的思路,献丑了:
select * from t a order by dz where exists (select * from t b where b.dz==a.dz group by dz having count(*)>2) into cursor temp
CDZ=DZ
NJS=0
SCAN
    IF DZ==CDZ
       NJS=NJS+1
       IF NJS<=3
          ? DZ,XM,RECNO()
       ENDIF
    ELSE
       NJS=0
       CDZ=DZ
    ENDIF
ENDSCAN
第一行代码可以用于查询表中同一字段重复的记录。

[ 本帖最后由 sdta 于 2012-2-19 04:12 编辑 ]

坚守VFP最后的阵地
2012-02-16 22:01
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
要不要加色討論?

授人以渔,不授人以鱼。
2012-02-16 23:22
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
应该可以用一条SELECT-SQL语句完成的,我不会。
*!*       dz               xm
*!*       XX县XX镇A村         A
*!*       XX县XX镇A村         Q
*!*       XX县XX镇B村         R
*!*       XX县XX镇A村         p
*!*       XX县XX镇A村         M
*!*       XX县XX镇B村         O
*!*       XX县XX镇B村         I
*!*       XX县XX镇B村         X
*!*       XX县XX镇C村         S
*!*       XX县XX镇C村         W
*!*         ……            ……
*!*    查找所有的村,每个村取3条数据
*!*    (XX县XX镇A村3条数据,
*!*    XX县XX镇B村的3条数据,
*!*    XX县XX镇C村的3条数据,
*!*    ……村的3条数据)?
*!*    命令如何写?
CLEAR
CLOSE ALL
CREATE TABLE tt (dz c(20),xm c(8))
INSERT INTO tt VALUES ('XX县XX镇A村','A')
INSERT INTO tt VALUES ('XX县XX镇A村','Q')
INSERT INTO tt VALUES ('XX县XX镇B村','R')
INSERT INTO tt VALUES ('XX县XX镇A村','p')
INSERT INTO tt VALUES ('XX县XX镇A村','M')
INSERT INTO tt VALUES ('XX县XX镇B村','O')
INSERT INTO tt VALUES ('XX县XX镇B村','I')
INSERT INTO tt VALUES ('XX县XX镇B村','X')
INSERT INTO tt VALUES ('XX县XX镇C村','S')
INSERT INTO tt VALUES ('XX县XX镇C村','W')
SET ENGINEBEHAVIOR 70
SELECT * FROM tt WHERE .f. INTO TABLE tt2
SELECT tt
SCAN
  SELECT tt2
  COUNT TO a FOR tt2.dz==tt.dz
  IF a<3
    INSERT INTO tt2 VALUES (tt.dz,tt.xm)
  ENDIF
  SELECT tt
ENDSCAN
SELECT * FROM tt2
RETURN

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2012-02-16 23:28
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
以下是引用TonyDeng在2012-2-16 23:22:56的发言:

要不要加色討論?
讨论下对开阔大家的编程思路是大有好处的。

坚守VFP最后的阵地
2012-02-16 23:39
qingfameng
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:35
帖 子:964
专家分:3019
注 册:2010-2-6
收藏
得分:0 
回复sdta 网友.结合的做法很好,sql 用法挺熟的。但是,上句中我试了一下,有只存在两条记录的情况,需要再调整一下可能就行了。是不是要先排序。谢谢交流。
(以下是引用茵梦湖在2012-2-15 14:38:09的发言:建议去看一下 sql的用法, 很简单的~~   9.0版, 1句代码即可~) 把宝贝代码亮亮,让别人学习一下!还抢了你的饭碗吗?(抱歉啦!)
2012-02-16 23:41
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
回复 16楼 Tiger5392
SELECT * FROM tt WHERE .f. INTO TABLE tt2
SELECT tt &&好像不需要吧,仅供参考。
SCAN

坚守VFP最后的阵地
2012-02-16 23:43
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
以下是引用sdta在2012-2-16 23:43:02的发言:

SELECT * FROM tt WHERE .f. INTO TABLE tt2
SELECT tt &&好像不需要吧,仅供参考。
SCAN
没事,不要就去掉

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2012-02-16 23:45
快速回复:查看某个字段中,某一地址的前3条数据,如何写命令?
数据加载中...
 
   



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

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