| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 613 人关注过本帖, 1 人收藏
标题:vf表行列互转的问题 (转贴)
只看楼主 加入收藏
bccn201203
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:680
专家分:1140
注 册:2012-3-14
收藏(1)
 问题点数:0 回复次数:0 
vf表行列互转的问题 (转贴)
程序代码:
CREATE CURSOR T1 (XM C(10),KM C(10),FS I)
INSERT INTO T1 VALUES ('张三','语文',60)
INSERT INTO T1 VALUES ('李二','语文',61)
INSERT INTO T1 VALUES ('汪一','数学',58)
INSERT INTO T1 VALUES ('马六','地理',91)
INSERT INTO T1 VALUES ('马六','数学',60)
INSERT INTO T1 VALUES ('李二','地理',30)
INSERT INTO T1 VALUES ('张三','数学',20)
INSERT INTO T1 VALUES ('张三','地理',39)
*-- 以上生成测试数据,这里假设你的原表名为 T1

*--- 行记录转换为列记录
SELECT KM INTO CURSOR TMP FROM T1 GROUP BY KM
SELECT TMP
LCSTR="SELECT XM"
SCAN
    LCSTR=LCSTR+",SUM(IIF(ALLTRIM(KM)=='"+ALLTRIM(KM)+"',FS,0)) AS "+ALLTRIM(KM)+;
     IIF(RECNO()<RECCOUNT(),[],[ FROM T1 GROUP BY XM INTO CURSOR T2])
ENDSCAN
MESSAGEBOX(LCSTR)
&LCSTR
BROWSE

*--- 列记录转换为行记录
SELECT T2
LCSTR=[]
FOR I=2 TO FCOUNT()
    LCSTR=LCSTR+'SELECT XM,FIELD('+TRANSFORM(I)+') AS KM,EVALUATE(FIELD('+TRANSFORM(I)+')) AS FS FROM T2 WHERE NOT EMPTY(EVALUATE(FIELD('+TRANSFORM(I)+')))'+;
    IIF(I>2,')',[])+IIF(I<FCOUNT(),' UNION (',' INTO CURSOR T3')
ENDFOR
=MESSAGEBOX(LCSTR)
&LCSTR
BROWSE
2013-03-23 22:53
快速回复:vf表行列互转的问题 (转贴)
数据加载中...
 
   



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

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