【请教】 分组显示部分字段重复的记录,并把重复次数赋值?
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