【请教】 分组显示部分字段重复的记录,并把重复次数赋值?

LingX 2004-03-22 12:29:59

表结构:

字段名 类型


公司名 字符型

部门名 字符型

姓名 字符型

性别 字符型

出生年月 Date

SL 数值型



问题:

找出“姓名、性别、出生年月”这3个字段相同的记录(“出生年月”只须为“年”、“月”相同即可,日期可不管),重复次数赋值到“SL”字段中(初始赋值为“1”)。

要求:

按“公司名”、“部门名”这2个字段为序排列显示,但重复的记录必须紧紧显示在一起,如:

公司名 部门名  姓名       SL

公司1  部门1  张三 。。。。。 3
公司1  部门2  张三 。。。。。 3
公司2  部门1  张三 。。。。。 3


先按公司名分组,再按部门名分组,然后再把重复记录排列在一起显示。
 
也就是说:有多少个公司,就要分成多少组。找出各公司与其它公司的重复记录。

我表达得不好,不知大家看懂了没?

=======================================

我把我的做法附后,请大家指正:


sele 0

use TEST.DBF

repl all sl with 1


inde on allt(姓名)+allt(性别)+allt(dtoc(出生年月)) to TEST.idx

go top

do whil .not. eof()

aaa=allt(姓名)
bbb=allt(性别)
ccc=year(出生年月)
ddd=mont(出生年月)


skip

aaa1=allt(姓名)
bbb1=allt(性别)
ccc1=year(出生年月)
ddd1=mont(出生年月)




if aaa1=aaa .and. bbb1=bbb .and. ccc1=ccc .and. ddd1=ddd

repl sl with sl+1

endif

enddo

COPY for sl>1 to sl02.dbf



sele 1

USE sl02.DBF

inde on allt(姓名)+allt(性别)+allt(dtoc(出生年月)) to sl02.IDX

go top

BROWSE
...全文
87 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
LingX 2004-03-22
  • 打赏
  • 举报
回复

或者:

把各公司分成各个 “子表”,再与 “总表”

分别一一比较,然后再把“总表”中SL>=2的记录追加到各“子表”中?
LingX 2004-03-22
  • 打赏
  • 举报
回复

或者,把结果导入EXCEL操作也行呀???

没人会吗?
LingX 2004-03-22
  • 打赏
  • 举报
回复

不行:

1、姓名没有象我说的那样重复显示出来。

2、并没有把全部字段显示出来。
river_sea 2004-03-22
  • 打赏
  • 举报
回复
有SQL查询。大约
select 公司名,部门名,姓名,count(*) SL from tablename  
group by 公司名,部门名,姓名

2,722

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧