金蝶云星空有部分字段,是由多行数据拼接而成的,比如采购订单的【付款计划】-预付单号字段,再如凭证模板中的适用账簿字段。
在批量操作和分析这些数据的时候,难免需要进行展开,下面以采购订单的预付单号字段为例进行展开。
步骤一:创建临时表保存展开后的数据
create table #chl_order_relbillno(fid int,fentryid int,frelbillno varchar(100))
步骤二:使用游标对每一个有预付流程的订单进行处理
declare @FENTRYID int
declare @fid int
declare @FRELBILLNO varchar(2000)
declare chl_cur cursor for
select FENTRYID,fid,FRELBILLNO from T_PUR_POORDERINSTALLMENT where FRELBILLNO<>''
open chl_cur
fetch chl_cur into @FENTRYID,@fid,@FRELBILLNO
while (@@FETCH_STATUS=0)
begin
while(CHARindex(',',@FRELBILLNO)>0)
begin
insert into #chl_order_relbillno(fid,fentryid,frelbillno) select @fid,@FENTRYID,SUBSTRING(@FRELBILLNO,1,CHARindex(',',@FRELBILLNO)-1)
set @FRELBILLNO=SUBSTRING(@FRELBILLNO,CHARindex(',',@FRELBILLNO)+1,len(@FRELBILLNO))
end
insert into #chl_order_relbillno(fid,fentryid,frelbillno) values(@fid,@FENTRYID,@FRELBILLNO)
fetch chl_cur into @FENTRYID,@fid,@FRELBILLNO
end
close chl_cur
deallocate chl_cur
go
步骤三:查询预付订单展开的结果
select * from #chl_order_relbillno
ok!!!