回 帖 发 新 帖 刷新版面

主题:VFP中如何用编程解决如下问题

已有如下数据表:
班级    学号    姓名     语文    数学
1班    0101    周圣    87    92
1班    0102    国安    84    94
1班    0103    徐连     75    89
1班    0104    黄婷    79    67
2班    0201    叶萍    85    84
2班    0202    黄萍    87    75
3班    0301    乔振      79    88
3班    0302    周丙    74    66
3班    0303    方玉    78    99
3班    0304    彭稳    77    58

现因有特殊要求,需用编程方式转换为如下形式:
班级    学号    姓名   语文  数学
1班     0101    周圣    87    92
        0102    国安    84    94
        0103    徐连    75    89
        0104    黄婷    79    67
2班     0201    叶萍    85    84
        0202    黄萍    87    75
3班     0301    乔振    79    88
        0302    周丙    74    66
        0303    方玉    78    99
        0304    彭稳    77    58

即去掉重复的班级名。请各位高手指教。

回复列表 (共5个回复)

沙发

甲:按学号排序
乙:有一个一号
丙:只有一个一号
丁:不是一号的班级省略

板凳


谢谢回帖,问题是我的例子中学号都从1开始,事实上,每个班级不是都从1号开始的,如1班:0112,0115.。。。

3 楼

FOR I=1 TO RECCOUNT()
    GO I
    CCCC=ALLTRIM(班级)
    IF I+1<RECCOUNT()
       GO I+1
       IF ALLTRIM(班级)==CCCC
          REPLACE 班级 WITH ""
       ENDIF
    ENDIF
ENDFOR

4 楼

local lcClassname1
select atable
go top
lcClassname1=班级
skip
do while !eof()
   IF 班级=lcClassname1
      REPLACE 班级 WITH ""
   else
      lcClassname1=班级
   ENDIF
   skip
enddo

5 楼

在4楼朋友的启发下,更正3楼代码:
GO TOP
CCCC=ALLTRIM(班级)
FOR I=1 TO RECCOUNT()
    GO I
    IF ALLTRIM(班级)==CCCC and i>1
       REPLACE 班级 WITH ""
    ELSE
       CCCC=ALLTRIM(班级)
    ENDIF
ENDFOR
brow

我来回复

您尚未登录,请登录后再回复。点此登录或注册