2,728
社区成员
发帖
与我相关
我的任务
分享
Set Safety Off
*建表及生成测试数据
Create Table 源表 (机号 c(5),品种 c(1),日期 c(4))
Insert Into 源表 (机号,品种,日期) Values ("1#","a","1号")
Insert Into 源表 (机号,品种,日期) Values ("4#","a","1号")
Insert Into 源表 (机号,品种,日期) Values ("7#","a","1号")
Insert Into 源表 (机号,品种,日期) Values ("12#","a","1号")
Insert Into 源表 (机号,品种,日期) Values ("2#","a","3号")
Insert Into 源表 (机号,品种,日期) Values ("5#","a","3号")
Insert Into 源表 (机号,品种,日期) Values ("10#","a","3号")
Insert Into 源表 (机号,品种,日期) Values ("3#","a","4号")
Insert Into 源表 (机号,品种,日期) Values ("9#","a","4号")
Insert Into 源表 (机号,品种,日期) Values ("6#","b","3号")
Insert Into 源表 (机号,品种,日期) Values ("11#","b","3号")
Insert Into 源表 (机号,品种,日期) Values ("8#","b","5号")
Create Table 结果表 (品种 c(1))
For i=1 To 31
zdname="_"+ALLTRIM(Str(i))+"号"
Alter Table 结果表 Add Column &zdname c(5)
Endfor
*生成结果
Select 源表
Index On 品种+CHRTRAN(STR(VAL(Chrtran(机号,'#','')),4,0),' ','0') To 源表
GO top
Scan
Scatter Memv
zdname="_"+ALLTRIM(m.日期)
Select 结果表
Go Top
Locate For 品种==m.品种
Do While .t.
If Found() And ALLTRIM(&zdname)==""
Replace &zdname With m.机号
Exit
Else
If !Eof()
Continue
Else
Append Blank
Replace 品种 With m.品种,&zdname With m.机号
Exit
Endif
Endif
Enddo
Select 源表
Endscan
Set Safety On
Select 结果表
Browse