首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > VFP >

查每行记录的最大值对于的字段名,请朋友帮忙。解决思路

2012-05-07 
查每行记录的最大值对于的字段名,请朋友帮忙。一个表有很多字段,name1,name2,name3.....name n查每行记录的

查每行记录的最大值对于的字段名,请朋友帮忙。
一个表有很多字段,name1,name2,name3.....name n

查每行记录的最大值对于的字段名,EXCEL 的函数,不会用,数组不熟悉。
请朋友帮忙,谢谢。



num1name1name2name3 。。。。name n
c1123
c2312
c3132

查询转换变成:
num1maxname
c1name3
c2name1
c3name2


[解决办法]
Create Cursor tableb(num1 c(2), maxname c(20))
Create Cursor tablea(num1 c(2),name1 i,name2 i,name3 i)
Insert Into tablea Values('c1',1,2,3)
Insert Into tablea Values('c2',3,2,1)
Insert Into tablea Values('c3',1,3,2)
Select tablea
Go Top
nFldcnt=Afield(tbarr)
Scan
Scatter Memvar
aa=FIELD(2)
m.maxname=FIELD(2)
m.maxvalue=&aa
For i = 3 To nFldcnt
aa=Field(i)
aavalue=&aa
If aavalue>m.maxvalue
m.maxname=aa
m.maxvalue=aavalue
Endif
Endfor
Insert Into tableb From Memvar
SELECT tablea
ENDSCAN
SELECT tableb
BROWSE
[解决办法]
[code=SQL][/code]CREATE CURSOR TABLEB (NUM1 C(2),NUM2 C(10))
CREATE CURSOR TABLEA (NUM1 C(2),NAME1 I,NAME2 I,NAME3 I,NUM2 C(10))
INSERT INTO TABLEA VALUES('C1',1,2,3,"")
INSERT INTO TABLEA VALUES('C2',3,2,1,"")
INSERT INTO TABLEA VALUES('C3',1,3,2,"")
SELECT TABLEA
GO TOP
SCAN
SCATTER FIELDS LIKE NAME* TO ANAME
=ACOPY(ANAME,ANAMEE) &&复制数组
=ASORT(ANAMEE) && 数组排序
FOR I=1 TO ALEN(ANAME)
IF I=ALEN(ANAME)
INSERT INTO TABLEB VALUES (TABLEA.NUM1,"NAME"+TRANSFORM(ASCAN(ANAME,ANAMEE(ALEN(ANAME)))))
ENDIF
ENDFOR
SELECT TABLEA
ENDSCAN
SELECT TABLEB
BROWSE

[解决办法]
楼上的都写的很精彩,我给个思路:
1、取出字段,(用循环的方法)
2、复制一个表结构到另一个表aa,并添加一条空记录
3、用循环字段的办法,逐一计算出最大值,并入表aa的对应字段中!

热点排行