有一数据表内容如下
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
求最简单的方法
------解决思路----------------------
不是最简单的方法
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