当前位置: 代码迷 >> VFP >> 念对某一字段按流水进行编号,请前辈指导!先感谢了
  详细解决方案

念对某一字段按流水进行编号,请前辈指导!先感谢了

热度:1479   发布时间:2013-02-26 00:00:00.0
想对某一字段按流水进行编号,请前辈指导!先感谢了!
本帖最后由 salecn 于 2013-01-14 21:16:57 编辑
有用户.dbf,想对同一村、同一组相同的农户名称进行按“农户名称+流水号”编号方式得到“新农户名称”,如“更新后的用户表结构”,请前辈指导下这应该怎样操作啊?先感谢前辈了!

原始表结构如下:
用户.dbf
村名称  组名称  农户名称  新农户名称
白头村  五组  王林强   
白头村  五组  王林强   
白头村  五组  王林强   
白头村  七组  唐真贵   
白头村  八组  唐真贵   
白头村  八组  唐真贵   
白头村  九组  唐真贵   

更新后的用户表结构:
用户.dbf

村名称  组名称  农户名称  新农户名称
白头村  五组  王林强  王林强1
白头村  五组  王林强  王林强2
白头村  五组  王林强  王林强3
白头村  七组  唐真贵  唐真贵1
白头村  八组  唐真贵  唐真贵1
白头村  八组  唐真贵  唐真贵2
白头村  九组  唐真贵  唐真贵1

------解决方案--------------------------------------------------------
CREATE TABLE 用户 (村名称 C(6),组名称 C(4),农户名称 C(6),新农户名称 C(10))
INSERT INTO 用户 VALUES ([白头村],[五组],[王林强],[])
INSERT INTO 用户 VALUES ([白头村],[五组],[王林强],[])
INSERT INTO 用户 VALUES ([白头村],[五组],[王林强],[])
INSERT INTO 用户 VALUES ([白头村],[七组],[唐真贵],[])
INSERT INTO 用户 VALUES ([白头村],[八组],[唐真贵],[])
INSERT INTO 用户 VALUES ([白头村],[八组],[唐真贵],[])
INSERT INTO 用户 VALUES ([白头村],[九组],[唐真贵],[])

SELECT 村名称,组名称,农户名称,COUNT(*) NUM FROM 用户 GROUP BY 1,2,3 INTO CURSOR TEMP
SELECT TEMP
SCAN
   NUM1=1
   SELECT 用户
   SCAN FOR CHRTRANC(村名称+组名称+农户名称,[ ],[])==CHRTRANC(TEMP.村名称+TEMP.组名称+TEMP.农户名称,[ ],[])
        REPLACE 新农户名称 WITH ALLTRIM(农户名称)+TRANSFORM(NUM1)
        NUM1=NUM1+1
   ENDSCAN
   SELECT TEMP
ENDSCAN
SELECT 用户
BROWSE

------解决方案--------------------------------------------------------
可以用
SELECT *,RECNO() AS ID INTO CURSOR TTG FROM TT
SELECT 村名称,组名称,农户名称,农户名称+TRANSFORM((select COUNT(*) FROM ttg WHERE ;
村名称=a.村名称 AND 组名称=a.组名称 AND 农户名称=a.农户名称 AND a.id>=id;
)) as ss FROM ttg a
------解决方案--------------------------------------------------------
Select  distinct  村名称,组名称,农户名称  from  用户  into  cursor  用户临时表
Select  用户临时表
Scan
Select  用户
num=1
Scan  for  村名称=用户临时表.村名称  and  组名称=用户临时表.组名称  and  农户名称=用户临时表.农户名称
Replace  新农户名称  with  农户名称+alltrim(str(num))
Num=num+1
Endscan
endscan
  相关解决方案