| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4172 人关注过本帖
标题:如何把纵向记录变成横向记录?
取消只看楼主 加入收藏
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
结帖率:79.38%
收藏
已结贴  问题点数:20 回复次数:7 
如何把纵向记录变成横向记录?
如何把纵向记录变成横向记录
如图所示:
图片附件: 游客没有浏览图片的权限,请 登录注册
------>
图片附件: 游客没有浏览图片的权限,请 登录注册

我用INSERT INTO ls1 (km1,km1mc) ;
   SELECT * FROM kmk ;
      WHERE code$'100,200,300'
BROWSE
INSERT INTO ls1 (km2,km2mc) ;
   SELECT * FROM kmk ;
      WHERE !code$'100,200,300'
如图
图片附件: 游客没有浏览图片的权限,请 登录注册

有何办法把km2,km2mc中的空不产生?笨办法加上相同的101,102,103,然后唯一索引,有没有更好的办法?一次性产生无空格?
2017-03-11 10:33
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
mywisdom88班主:
原表是二列纵向记录,我想变成四列,这样一一对应,我的做法,先生成一个有四列的空表,然后插入进去,发现第三,四列前面有空记录,用笨办法是空记录中输入三条对应的记录,然后唯一索引。我问的有否好办法一次产生没有空格的表。

[此贴子已经被作者于2017-3-11 11:37编辑过]

2017-03-11 11:34
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
mywisdom88班主
按你的代码试了一下,提示找不到km2等等。
2017-03-11 11:58
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
mywisdom88
谢谢!
其中有的代码不太明的班主的思路,请指教一下:

   SELECT IIF(ISNULL(k1.km1),'',k1.km1) as km1,IIF(ISNULL(k1.km1mc),'',k1.km1mc) as km1mc,IIF(ISNULL(k2.km2),'',k2.km2) as km2,IIF(ISNULL(k2.km2mc),'',k2.km2mc) as km2mc;
    FROM (select Code as km1,Name as km1mc,space(3) as km2,space(40) as km2mc,recn() as rn from tb_ls1)k1 ;
    left join (select space(3) as km1,space(40) as km1mc,Code as km2,Name as km2mc,recn() as rn from tb_ls2)k2 on k1.rn=k2.rn ;
    into CURSOR ls1

讲一下整个思路好吗?上面中加上space(3)起什么作用?
2017-03-11 14:13
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
sdta:
可以参考:https://blog.bccn.net/sdta/16715 无法链接上 IE不兼容
2017-03-11 14:15
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
xinjie
你发的东西,发错了地方
2017-03-11 21:05
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
请教 SDTA有关二库关联的知识
以下是引用sdta在2017-3-11 15:33:36的发言:

Note 行转列
clear all
create cursor t2 (学号 c(4),姓名 c(8),课目 c(10),成绩 n(3))
insert into t2 values ("1001","张三","数学",102)
insert into t2 values ("1001","张三","语文",120)
insert into t2 values ("1002","李四","数学",119)
insert into t2 values ("1002","李四","语文",108)
  
select distinct 课目 from t2 into array ajg
  
* 创建临时表结构及索引
lcstr=""
for lnI=1 to alen(ajg,1)
    lcstr=lcstr+iif(empty(lcstr),"",",")+alltrim(ajg[lnI,1])+" N(3)"
endfor
create cursor t4 (学号 c(4),姓名 c(8),&lcstr)
index on 学号+姓名 tag xhx
m
* 结束 *
  
* 数据处理
select t2
set relation to 学号+姓名 into "t4"
scan
    km=alltrim(t2.课目)
    if found("t4")
        replace (km) with t2.成绩 in "t4"
    else
        insert into t4 (学号,姓名,&km) values (t2.学号,t2.姓名,t2.成绩)
    endif
endscan
set relation to
select t4
browse
有关二库关联以前学的时候,子表要索引,关联后当前库为父表,被关联的为子表,然后用子表中某字段的记录去替换父表中某字段的记录。你这里的父表是什么?子表是什么?
create cursor t4 (学号 c(4),姓名 c(8),&lcstr)
index on 学号+姓名 tag xhxm
从代码看这是子表t4
-----------------------
select t2
set relation to 学号+姓名 into "t4"  
从代码看这里是父表t2去与子表“t4”去关联
----------------------
if found("t4")
        replace (km) with t2.成绩 in "t4"
从代码看这里是用父表的值去更新子表
我有点搞糊涂了,请您指教。如何来理介你的代码?
2017-03-12 11:21
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
以下是引用sdta在2017-3-12 11:44:10的发言:

帮助文件中都有明确的解释的
帮助文件当然有,不明白才请教。窗口命令与程序有所不同。
2017-03-12 12:17
快速回复:如何把纵向记录变成横向记录?
数据加载中...
 
   



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

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