| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1761 人关注过本帖
标题:一个用户记的多条记录如何合并成一条记录
只看楼主 加入收藏
fssir
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-12-30
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
一个用户记的多条记录如何合并成一条记录
我是个新手想请教各位老师一个问题;用户多条记录如何合并成一条记录如下:
日期   客户    金额   顺序号  
2009   XM      50       1
2009   XM      60       1
2009   XM      70       1
2009   XM      80       1
2009   JM      100      2
2009   JM      200      2
2009   JM      300      2  
2009   JM      400      2
想要合并后是这样的效果
日期   客户    金额    金额1  金额2 金额3    金额3  顺序号
2009   XM       50     60      70    80               1
2009   JM       100    100     200   300      400     2
请问这个该如何去处理呢?
谢谢!
搜索更多相关主题的帖子: 用户 记录 
2009-12-30 23:15
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:20 
close all
create table tblTemp (日期 N(4),客户 C(8),金额 N(4),顺序号 N(1))
insert into tblTemp values (2009,'XM', 50,1)
insert into tblTemp values (2009,'XM', 60,1)
insert into tblTemp values (2009,'XM', 70,1)
insert into tblTemp values (2009,'XM', 80,1)
insert into tblTemp values (2009,'JM',100,2)
insert into tblTemp values (2009,'JM',100,2)
insert into tblTemp values (2009,'JM',200,2)
insert into tblTemp values (2009,'JM',300,2)
insert into tblTemp values (2009,'JM',400,2)
select count(*) as cnt from tbltemp group by 客户 into table tblTemp1
select max(cnt) from tblTemp1 into array laMyArr
lc='(日期 N(4),客户 C(8),金额 N(4)'
for lnCnt=1 to laMyArr(1)-1
  lc=lc+',金额'+alltrim(str(lnCnt))+' N(4)'
endfor
lc=lc+',顺序号 N(1))'
create table tblTemp2 &lc
select tblTemp
scan
  select tblTemp2
  locate for 客户=tblTemp.客户
  if eof()
    append blank
    replace 日期 with tblTemp.日期,客户 with tblTemp.客户,金额 with tblTemp.金额,顺序号 with tblTemp.顺序号
  else
    for lnCnt=4 to fcount()-1
      lc=field(lnCnt)
      if empty(&lc)
        exit
      endif
    endfor
    replace &lc with tblTemp.金额
  endif
endscan
select tblTemp2
brow
return

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2009-12-31 01:31
fssir
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-12-30
收藏
得分:0 
回复 楼主 fssir
老师如果是很多个客户是不是也一样一个一个用insert into 做呢?谢谢!
2009-12-31 14:34
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
你给的数据,我没有现成的表,只好做一个表。实际上,你应该是通过其他的途径得到tblTemp这个表的,后面的就用这个表来处理。看回复应该知道回复者的无奈。

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2009-12-31 20:16
fssir
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-12-30
收藏
得分:0 
我不太懂这个了,是想学学怎么做呵呵,不好意思刚学这个好多都不会啊。我才学没几天,能否告诉我详细一点,如果有很多个客户也是用这样的方法吗?
2009-12-31 20:22
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
特别提醒,同一个客户如果记录超过251个就有麻烦了。

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2009-12-31 21:10
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
以下是引用fssir在2009-12-31 20:22:59的发言:

我不太懂这个了,是想学学怎么做呵呵,不好意思刚学这个好多都不会啊。我才学没几天,能否告诉我详细一点,如果有很多个客户也是用这样的方法吗?
不同客户的数量无论多少都没有关系,但同一个客户的记录不可以太多。

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2009-12-31 22:18
小主板
Rank: 2
等 级:论坛游民
帖 子:187
专家分:21
注 册:2009-6-28
收藏
得分:0 
谢谢楼主分享!!!!!
2010-01-30 13:25
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
典型的列记录转换为行记录

坚守VFP最后的阵地
2014-11-23 22:10
快速回复:一个用户记的多条记录如何合并成一条记录
数据加载中...
 
   



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

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