关于数据处理的问题

lygcw9602 2014-03-18 01:58:35
有一数据表内容如下
CREATE CURSOR T (订单编号 C(4),客户号码 C(4),订单形式 C(4),色纹 C(4),材质 C(4),数量 N(4))
INSERT INTO T VALUES ([P001],[S001],[普通],[F186],[发泡],100)
INSERT INTO T VALUES ([P001],[S001],[普通],[F286],[发泡],150)
INSERT INTO T VALUES ([P001],[S001],[普通],[F186],[发泡],50)
INSERT INTO T VALUES ([P001],[S001],[异形],[W889],[木头],60)
INSERT INTO T VALUES ([P001],[S001],[异形],[F286],[发泡],20)
INSERT INTO T VALUES ([P001],[S001],[普通],[W889],[木头],20)
INSERT INTO T VALUES ([P006],[D001],[普通],[F123],[发泡],10)
INSERT INTO T VALUES ([P006],[D001],[普通],[F256],[发泡],20)
INSERT INTO T VALUES ([P006],[D001],[普通],[W556],[木头],65)


转换为如下结果

订单号码 客户号码 订单形式   色纹             材质             数量
P001 S001 普通/异形 F186/F286/W889 木头/发泡 400
P006 D001 普通 F123/F256/W556 木头/发泡 95

求最简单的方法
...全文
565 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
十豆三 2014-03-18
  • 打赏
  • 举报
回复
不是最简单的方法
Create Cursor T (订单编号 C(4),客户号码 C(4),订单形式 C(4),色纹 C(4),材质 C(4),数量 N(4))
Insert Into T Values ([P001],[S001],[普通],[F186],[发泡],100)
Insert Into T Values ([P001],[S001],[普通],[F286],[发泡],150)
Insert Into T Values ([P001],[S001],[普通],[F186],[发泡],50)
Insert Into T Values ([P001],[S001],[异形],[W889],[木头],60)
Insert Into T Values ([P001],[S001],[异形],[F286],[发泡],20)
Insert Into T Values ([P001],[S001],[普通],[W889],[木头],20)
Insert Into T Values ([P006],[D001],[普通],[F123],[发泡],10)
Insert Into T Values ([P006],[D001],[普通],[F256],[发泡],20)
Insert Into T Values ([P006],[D001],[普通],[W556],[木头],65)

Select 订单编号,客户号码,Space(254) As 订单形式,Space(254) As 色纹,Space(254) As 材质,Sum(数量) As 数量 Into Table 结果表 From T Group By 1,2 Order By 1,2

Select 订单编号,客户号码,订单形式 Into Cursor cc From T Group By 1,2,3
Select cc
Scan
	Update 结果表 Set 结果表.订单形式=Alltrim(结果表.订单形式)+'/'+Alltrim(cc.订单形式) Where 结果表.订单编号=cc.订单编号 And 结果表.客户号码=cc.客户号码
Endscan

Select 订单编号,客户号码,色纹 Into Cursor cc From T Group By 1,2,3
Select cc
Scan
	Update 结果表 Set 结果表.色纹=Alltrim(结果表.色纹)+'/'+Alltrim(cc.色纹) Where 结果表.订单编号=cc.订单编号 And 结果表.客户号码=cc.客户号码
Endscan

Select 订单编号,客户号码,材质 Into Cursor cc From T Group By 1,2,3
Select cc
Scan
	Update 结果表 Set 结果表.材质=Alltrim(结果表.材质)+'/'+Alltrim(cc.材质) Where 结果表.订单编号=cc.订单编号 And 结果表.客户号码=cc.客户号码
Endscan

Update 结果表 Set 订单形式=Substr(订单形式,2),色纹=Substr(色纹,2),材质=Substr(材质,2)
Select 结果表
Browse

2,727

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧