回 帖 发 新 帖 刷新版面

主题:求FOXPRO命令

表1:
工号    日期    姓名    部门    出勤时间
031101    4-1    倪    生产管理科       11
031101    4-2    倪    生产管理科       8
031101    4-3    倪    生产管理科       8
031101    4-4    倪    生产管理科       8
031101    4-5    倪    生产管理科       3
031101    4-6    倪    生产管理科       0
031101    4-7    倪    生产管理科       8
031101    4-8    倪    生产管理科   0
050801    4-1    周    生产管理科  8
050801    4-2    周    生产管理科 8
050801    4-3    周    生产管理科       8
050801    4-4    周    生产管理科       8
050801    4-5    周    生产管理科       0
050801    4-6    周    生产管理科   0
050801    4-7    周    生产管理科      8
050801    4-8    周    生产管理科      0

[color=800000][size=3]用什么命令可以生成表2??[/size][/color]表2字段
工号    姓名    部门名称    4-1 4-2 4-3 4-4 4-5 4-6 4-7 4-8
031101    倪晓峰    生产管理科    11                
050801    周玮    生产管理科 8

只要出勤时间的记录变为横向数据就可以

回复列表 (共4个回复)

沙发

我有个思路
use 表1 in 0
use 表2 in 0
sele 表1 
do whil !eof()
   aa = '表2.'+allt(表1.日期)
   repl &aa. with 表1.出勤日间
   skip 
enddo

板凳

交叉表

3 楼

“日期”字段是什么类型?

4 楼

如果“日期”字段是字符类型:

USE 表1
SET ENGINEBEHAVIOR 70 
SELECT * FROM 表1 INTO CURSOR cursor1 READWRITE group by 2
SELECT cursor1
ALTER TABLE cursor1 alter 日期 C(9)
REPLACE all 日期 with "d_"-strt(日期,"-","月",1)-"日"
GO top
COPY STRU TO mytemp EXTENDED
USE mytemp IN 0 excl
APPEND BLANK in mytemp
REPLACE mytemp.field_name with cursor1.日期 ;
            mytemp.field_type with "N",mytemp.field_len with 9 in mytemp
GO top
FOR i=2 to RECCOUNT()
    old_date=cursor1.日期
    GO i
    IF     ALLTRIM(cursor1.日期)<>ALLTRIM(old_date)
        APPEND BLANK in mytemp
        REPLACE  mytemp.field_name with cursor1.日期 ;
            mytemp.field_type with "N",mytemp.field_len with 9 in mytemp
    ENDIF 
NEXT  

SELECT mytemp
CREATE 表2 from mytemp
USE 表2
SELECT 表1
gh=0
FOR i=1 TO RECCOUNT()
    GO i
    IF 工号<>gh
        APPEND BLANK in 表2 
        REPLACE 表2.工号 WITH 表1.工号,表2.姓名 with 表1.姓名,;
表2.部门 with 表1.部门 in 表2 
        gh=工号
    ENDIF 
    c_日期="表2."-"d_"-strt(日期,"-","月",1)-"日"
    REPLACE &c_日期 WITH 表1.出勤时间 in 表2 
NEXT 
SELECT 表2
BROWSE

我来回复

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