标题:数组的问题
取消只看楼主
hyhosd
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2012-8-24
得分:0 
那就我把详细情况说下吧!上传不了图片只好手工输入了!!!
数据表(部分数据)
 jgid          行政职务       姓名
140207000      理事长         姓名1
140207000      监事长         姓名2
140207000      主任           姓名3
140207000      副主任         姓名4
140207000      副主任         姓名5
140207000      副主任         姓名6
140207000      副主任         姓名7
140207000      副主任         姓名8
140406000      主任           姓名9
140406000      副主任         姓名10
140406000      副主任         姓名11
140701000      理事长         姓名12
140701000      副主任         姓名13
实现结果如下
jgid        职数  理事长    监事长     主任    副主任   副主任   副主任   副主任  副主任
140207000     8    姓名1     姓名2      姓名3   姓名4    姓名5    姓名6    姓名7   姓名8
140406000     3                         姓名9   姓名10   姓名11
140701000     2   姓名12                       姓名13
    合计      13   2            1       2        3         2        1       1       1
那大家帮我看看,我的思路是---理事长、监事长、主任列通过CASE WHEN 的办法进行行转列,通过JGID分组,后面的就按照这个帖子的办法进行行转列,然后将两个数据合并到一起,第一列和合计行不会做!大家有没有更好的办法呢?
2012-08-29 10:53
hyhosd
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2012-8-24
得分:0 
学会自学,,没听过GRid
2012-08-29 10:59
hyhosd
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2012-8-24
得分:0 
发的是实现其中副主任部分的代码!前面的几列实现我正在写作当中
2012-08-29 11:09
hyhosd
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2012-8-24
得分:0 
这是我写好的代码,
text to ggmc noshow
    select jgid,行政职务,姓名 from gz02 where LEN(jgid)=9 and RIGHT(jgid,3)='000'
    and (行政职务='理事长' or 行政职务='主任' or 行政职务='监事长' or 行政职务='副主任')
     order by jgid
ENDTEXT
select 0
    if use_("gz02",ggmc)>1
        wait_("0人员表打不开")
        return '0获取数据失败'
    ENDIF
copy TO temp_("Gz02tmp")
USE in Gz02
select 0
    if use_(temp_("Gz02tmp"))>1
        wait_("0人员行政表打不开")
        return '0获取数据失败'
    ENDIF   
select gz02tmp
       select JGID,;
       CASE WHEN 行政职务 = '理事长' Then 姓名   end as 理事长,;
        CASE WHEN 行政职务 = '监事长' then 姓名  end as 监事长,;
        CASE WHEN 行政职务 = '主任'   then 姓名   end  as 主任,;
       space(10) as 副主任,;
       space(10) as 副主任1,;
       space(10) as 副主任2,;
       space(10) as 副主任3,;
       space(10) as 副主任4 from gz02tmp  group by jgid into DBF temp_("TBJSZ")
select 0
    if use_(temp_("TBJSZ"))>1
        wait_("00人员行政表打不开")
        return '0获取数据失败'
    ENDIF      
CREATE CURSOR XZZW (JGID C(20),副主任 C(10),副主任1 C(10),副主任2 C(10),副主任3 C(10),副主任4 C(10))
select Gz02tmp
  select * from ALIAS() where 行政职务='副主任' into dbf temp_("FZR")
  select 0
    if use_(temp_("FZR"))>1
        wait_("0人员行政表打不开")
        return '0获取数据失败'
    ENDIF
select FZR   
  SELECT  JGID  FROM ALIAS() GROUP BY JGID INTO ARRAY AREC
 FOR I=1 TO ALEN(AREC,1)
     SELECT 姓名 FROM FZR  where jgid = AREC(i,1)  INTO ARRAY ASS
      SELECT("XZZW")
      append BLANK
      REPLACE JGID With AREC(I,1)   
      FOR I1=2 TO FCOUNT("XZZW")-(FCOUNT("XZZW")-ALEN(ASS,1))+1
          REPLACE RECORD RECCOUNT() (Field(I1)) With ASS(I1-1,1)
      ENDFOR
 ENDFOR
SELECT TBJSZ
APPEND FROM XZZW
BROW     
但是CASE WHEN 部分总报错,“Command contains unrecognized phrase/keyword.”命令无法识别!!!但是在PLSQL执行就可以!大家帮忙看看,这样写是否对?还有帮我解释下CSAE  WHEN 语句错在哪了,因为以前也这样写过,但没报错!



[ 本帖最后由 hyhosd 于 2012-8-29 11:26 编辑 ]
2012-08-29 11:16
hyhosd
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2012-8-24
得分:0 
回复 53楼 sdta
说的很对,一点一点积累,慢慢就好起来了,现在比刚开始学好多了!
2012-08-29 11:21
hyhosd
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2012-8-24
得分:0 
select JGID,;
        CASE WHEN 行政职务 = '理事长' Then 姓名   end as 理事长,;
         CASE WHEN 行政职务 = '监事长' then 姓名  end as 监事长,;
         CASE WHEN 行政职务 = '主任'   then 姓名   end  as 主任,;
        space(10) as 副主任,;
        space(10) as 副主任1,;
        space(10) as 副主任2,;
        space(10) as 副主任3,;
        space(10) as 副主任4 from gz02tmp  group by jgid into DBF temp_("TBJSZ")
用这个也实现不了吗(除了职数列)?其实我的代码里,已经把副主任命名不一样了,我现在生成的表最后是要往另一个报表中替的,另一个表中的格式是死的,我只要把我现在生成的列按顺序替进去就行了!

[ 本帖最后由 hyhosd 于 2012-8-29 11:50 编辑 ]
2012-08-29 11:44
hyhosd
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2012-8-24
得分:0 
回复 57楼 TonyDeng
gz02.rar (692 Bytes)
这是原表
2012-08-29 12:10
hyhosd
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2012-8-24
得分:0 
恩,最多就五个副主任,
2012-08-29 12:13
hyhosd
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2012-8-24
得分:0 
回复 61楼 TonyDeng
gz02.rar (1.54 KB)
有职务表,但是我只用了表中的职务码,GZ02表我已经取上行政职务码了,sdta版主给提的意见我看了,副主任那几列是必须分开的!

[ 本帖最后由 hyhosd 于 2012-8-29 16:28 编辑 ]
2012-08-29 15:26
hyhosd
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2012-8-24
得分:0 
谢谢sdta版主,我先看看你给的代码!
2012-08-29 15:50



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




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

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