标题:求助关于视图查询的一个问题?谢谢各位大侠!
只看楼主
llgj2007
Rank: 1
等 级:新手上路
帖 子:14
专家分:6
注 册:2013-4-9
结帖率:100%
已结贴  问题点数:20 回复次数:11 
求助关于视图查询的一个问题?谢谢各位大侠!
我想把一个数据图表的某一项不重复的数据变成横表查询,能做到吗?
比如:(车型  车号 设备型号 设备编号) 4个字段,其中车型车号记录重复(因每种车型车号安装有5种型号设备)我想在查询时车型车号变成唯一记录,设备型号编号记录变成横表显示(其实就是领导看着习惯)。谢谢了
搜索更多相关主题的帖子: 车型 设备 
2013-04-11 17:24
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
可以转到EXCEL表之后再转换成横表。

活到老,学到老! http://www. E-mail:hu-jj@
2013-04-11 17:29
llgj2007
Rank: 1
等 级:新手上路
帖 子:14
专家分:6
注 册:2013-4-9
得分:0 
我想在程序中直接查询及报表输出打印
2013-04-11 17:50
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
得分:0 
用EXCEL表做个示意表格发上来看看,以方便了解各数据项的关系及显示方式。
2013-04-11 19:18
llgj2007
Rank: 1
等 级:新手上路
帖 子:14
专家分:6
注 册:2013-4-9
得分:0 
2013-04-13 18:17
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
得分:0 
原来楼主是南车的员工啊。呵呵。
2013-04-13 20:01
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
把数据转储到一个临时表中再输出

授人以渔,不授人以鱼。
2013-04-13 20:49
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
得分:8 

是想要这样的效果吗?(源数据采自你上传的Excel截图)
程序代码:
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。
T1和T2.rar (1014 Bytes)



[ 本帖最后由 taifu945 于 2013-4-13 21:50 编辑 ]
2013-04-13 21:48
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
得分:0 
不过,你们南车的这位领导真可爱,喜欢看这样的非主流表格。其实你的源表设计得很好,表格应该是就长不就宽的。
2013-04-13 21:52
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
得分:6 
本以为你的是交叉报表,原来不是.给个简单列子吧。你看着调整。

form1.rar (4.76 KB)
2013-04-14 06:06



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




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

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