标题:行转列的问题!
只看楼主
hyhosd
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2012-8-24
结帖率:100%
已结贴  问题点数:20 回复次数:8 
行转列的问题!
表机构如下
 jgid   职务     姓名
 n1     副主任   姓名1
 n1     副主任   姓名2
 n1     副主任   姓名3
 n1     副主任   姓名4
 n1     副主任   姓名5
 实现如下结果
 jgid     副主任   副主任   副主任   副主任  副主任
 n1       姓名1    姓名2    姓名3    姓名4    姓名5
 我写的代码如下
 select jgid,
        (case  行政职务 when '副主任' then 姓名 end) as 副主任,
        (case  行政职务 when '副主任' then 姓名 end) as 副主任,
        (case  行政职务 when '副主任' then 姓名 end) as 副主任,
        (case  行政职务 when '副主任' then 姓名 end) as 副主任,
        (case  行政职务 when '副主任' then 姓名 end) as 副主任     
  from tablename
  执行后
  jgid     副主任   副主任   副主任   副主任  副主任
  n1       姓名1    姓名1    姓名1    姓名1    姓名1  
  n1       姓名2    姓名2    姓名2    姓名2    姓名2
  ..       ...      ...       ...      ...     ...
  如何才能实现我要的那种结果呢?请大家给指点下!谢谢!

[ 本帖最后由 hyhosd 于 2012-8-24 15:59 编辑 ]
搜索更多相关主题的帖子: 姓名 机构 
2012-08-24 15:47
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:108
帖 子:2175
专家分:3785
注 册:2007-4-27
得分:0 
这个在EXCEL中很容易实现

VFP中有点麻烦

只求每天有一丁点儿的进步就可以了
2012-08-24 15:50
hyhosd
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2012-8-24
得分:0 
用select 语句也可以
2012-08-24 15:51
茵梦湖
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:31
帖 子:545
专家分:2180
注 册:2009-4-25
得分:0 
以下是引用hyhosd在2012-8-24 15:47:32的发言:

 表机构如下
 jgid   职务     姓名
 n1     副主任   姓名1
 n1     副主任   姓名2
 n1     副主任   姓名3
 n1     副主任   姓名4
 n1     副主任   姓名5
 实现如下结果
 jgid     副主任   副主任   副主任   副主任  副主任
 n1       姓名1    姓名2    姓名3    姓名4    姓名5
 我写的代码如下
 select jgid,
        (case  行政职务 when '副主任' then 姓名 end) as 副主任,
        (case  行政职务 when '副主任' then 姓名 end) as 副主任,
        (case  行政职务 when '副主任' then 姓名 end) as 副主任,
        (case  行政职务 when '副主任' then 姓名 end) as 副主任,
        (case  行政职务 when '副主任' then 姓名 end) as 副主任     
  from tablename
  执行后
  jgid     副主任   副主任   副主任   副主任  副主任
  n1       姓名1    姓名1    姓名1    姓名1    姓名1  
  n1       姓名2    姓名2    姓名2    姓名2    姓名2
  ..       ...      ...       ...      ...     ...
  如何才能实现我要的那种结果呢?请大家给指点下!谢谢!



参阅:

https://bbs.bccn.net/viewthread.php?tid=292391&extra=&page=1
2012-08-24 16:02
茵梦湖
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:31
帖 子:545
专家分:2180
注 册:2009-4-25
得分:5 
2012-08-24 16:11
bccn201203
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:680
专家分:1140
注 册:2012-3-14
得分:15 
程序代码:
*--- 行列转换示例
CREATE CURSOR TABNA (M1 C(10),M2 C(10),M3 C(10),M4 C(10),M5 C(10),M6 C(10)) && 创建临时表字段
CREATE CURSOR TABN (jgid C(2),职务 C(10),姓名 C(10))
FOR I=1 TO 2
    FOR I1=1 TO 5
        INSERT INTO TABN VALUES ("N"+TRANSFORM(I),"副主任","姓名"+TRANSFORM(i1))
    ENDFOR
ENDFOR
SELECT JGID FROM TABN GROUP BY JGID INTO ARRAY AREC && 数据分组
FOR I=1 TO ALEN(AREC,1)
    SELECT * FROM TABN WHERE ALLTRIM(JGID)=="N"+TRANSFORM(I) INTO ARRAY ASS && 生成分组数据
    INSERT INTO TABNA (M1) VALUES(ASS(1,1)) && 添加数据
    FOR I1=2 TO FCOUNT("TABNA")
        REPLACE RECORD RECCOUNT() (FIELD(I1)) WITH ASS(I1-1,3) IN TABNA
    ENDFOR
ENDFOR
SELECT TABNA
BROWSE



[ 本帖最后由 bccn201203 于 2012-8-24 16:36 编辑 ]
2012-08-24 16:32
hyhosd
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2012-8-24
得分:0 
谢谢楼上的朋友和版主的热心回答,经测试楼上的朋友能现实我想要的结果!新手不是很懂,假设我的JGID数值很多,仍可以向数组中存值吗?
2012-08-24 17:16
bccn201203
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:680
专家分:1140
注 册:2012-3-14
得分:0 
可以
执行命令,看下结果,就知道什么意思了

[ 本帖最后由 bccn201203 于 2012-8-24 18:52 编辑 ]
2012-08-24 18:48
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
想要现成的吧

授人以渔,不授人以鱼。
2012-08-24 22:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-380049-1-1.html




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

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