回 帖 发 新 帖 刷新版面

主题:[讨论]求助数据格式转换

请问如何将
study_id    control_id
216    314
216    2024
217    16
217    78
497    584
497    857
转化为下面的数据格式
match     case    id
1    1    216
1    0    314
1    0    2024
2    1    217
2    0    16
2    0    78
3    1    497
3    0    584
3    0    857

 一位朋友做了一个程序模板,但有问题,请问该怎么转换?
下面是朋友的程序:
create matchedcase;
(match n(3),;
case n(1),;
id n(4))

sele study_id dist from oldmatch into array caseids
caseCNT =alen(caseids)
use oldmatch 
for i=1 to caseCNT
go 1
scan for  case_ID=caseids(i)
insert into matchedcase (match case id) values (i,1,case_id)
insert into matchedcase (match case id) values (i,0,control_id)
end scan
end for

回复列表 (共2个回复)

沙发

SELECT RECNO() as macth,1 as case,study_id as id FROM (select DISTINCT study_id FROM table1) C
UNION ALL 
SELECT RECNO() as match,0 AS CASE,B.control_id AS ID FROM (SELECT DISTINCT study_id FROM table1) A LEFT JOIN TABLE1 B ON A.study_id=B.study_id ORDER BY match

板凳

SET TALK OFF
ONE_VALUE=1
ZERO_VALUE=0


SELECT DISTINCT STUDY_ID FROM A.dbf INTO CURSOR TEMP_TABLE1
SELECT RECNO() as MATCH ,ONE_VALUE as CASE , STUDY_ID FROM TEMP_TABLE1 INTO CURSOR TEMP_TABLE1


SELECT * FROM TEMP_TABLE1 ;
UNION ;
SELECT B.MATCH , ZERO_VALUE as CASE ,CONTROL_ID FROM A.dbf as A,TEMP_TABLE1 as B WHERE A.STUDY_ID=B.STUDY_ID

我来回复

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