求助关于视图查询的一个问题?谢谢各位大侠!
我想把一个数据图表的某一项不重复的数据变成横表查询,能做到吗?比如:(车型 车号 设备型号 设备编号) 4个字段,其中车型车号记录重复(因每种车型车号安装有5种型号设备)我想在查询时车型车号变成唯一记录,设备型号编号记录变成横表显示(其实就是领导看着习惯)。谢谢了
CLOSE ALL SET TALK OFF SET SAFETY OFF USE T1 COPY STRUCTURE TO T2 USE T2 IN 0 机车序号=1 型号=机车型号 编号=机车编号 名称=设备名称 SCAN IF 机车型号+机车编号+设备名称=型号+编号+名称 IF RECCOUNT("T2")=0 INSERT INTO T2 VALUES (T1.机车型号,T1.机车编号,T1.设备名称,T1.设备型号, ; T1.设备编号,T1.生产日期,T1.生产厂家) ELSE SKIP &&如果下一条记录的设备和前一条记录一样,就跳过 ENDIF ELSE IF 机车型号+机车编号#型号+编号 机车序号=1 &&如果换了机车,设备名称从头开始计数 INSERT INTO T2 (机车型号,机车编号,设备名称,设备型号, ; 设备编号,生产日期,生产厂家) ; VALUES (T1.机车型号,T1.机车编号,T1.设备名称,T1.设备型号, ; T1.设备编号,T1.生产日期,T1.生产厂家) ELSE 机车序号=机车序号+1 重复字段序号=LTRIM(STR(机车序号,2)) 设备名称字段="设备名称"+重复字段序号 设备型号字段="设备型号"+重复字段序号 设备编号字段="设备编号"+重复字段序号 生产日期字段="生产日期"+重复字段序号 生产厂家字段="生产厂家"+重复字段序号 IF LEN(FIELD(设备名称字段,"T2"))=0 &&不存在相应设备字段 ALTER TABLE T2 ADD (设备名称字段) C(20) ; ADD (设备型号字段) C(4) ; ADD (设备编号字段) C(5) ; ADD (生产日期字段) D ; ADD (生产厂家字段) C(4) SELECT T2 REPLACE (设备名称字段) WITH T1.设备名称, ; (设备型号字段) WITH T1.设备型号, ; (设备编号字段) WITH T1.设备编号, ; (生产日期字段) WITH T1.生产日期, ; (生产厂家字段) WITH T1.生产厂家 ELSE &&如果已有相应设备字段 UPDATE T2 SET &设备名称字段=T1.设备名称, ; &设备型号字段=T1.设备型号, ; &设备编号字段=T1.设备编号, ; &生产日期字段=T1.生产日期, ; &生产厂家字段=T1.生产厂家 ; WHERE T2.机车型号+T2.机车编号=T1.机车型号+T1.机车编号 ENDIF ENDIF ENDIF SELECT T1 型号=机车型号 编号=机车编号 名称=设备名称 ENDSCAN CLOSE ALL SET TALK ON SET SAFETY ON RETURN程序有点长,你可以研究一下。匆忙中编出来,效果达到了,但没有考虑优化,只是按步骤做。T1.DBF是源数据表,生成的效果是T2.DBF。