--2014年之前的版本,在后来版本中由于更改了数据库的存取方式导致 成长套系出问题: --现象: --订单修改中,成长套系的套系产品中的入册入底基本上看不到,不仅仅入册入底,还有其他的商品也显示不出来。 --出现问题的影楼:格林儿童专业摄影机构-新城区新华大街20号 --产生的原因: --之前的版本,若有多个成长套系,某些商品(包含入底入册)可以选择"全部"成长套系都包含,dindansp表中growthtxname='全部',表示该商品为所有成长所有; --后来的版本,dindansp表中每个商品不再使用growthtxname='全部'这种方式存储,而是一一对应某个成长套系. --解决方案: --1.将之前包含growthtxname='全部'的dindansp记录删除,重新创建每个成长套系对应的商品记录; --2.有些dindansp的记录虽然包含'全部',但是经查询发现该订单的其他的商品套系名称全为空,反映出并不是所有包含'全部'的都是成长套系订单; --这部分记录要过滤. --解决过程: --1.获取出dindansp中成长套系名称为"全部"的商品和订单; use db select id,spid,name,growthtxname from dindansp where growthtxname = '全部' order by id go --2.获取这些订单的成长套系数量及名称; use db select id,spid,name,growthtxname from dindansp where id in(select id from dindansp where growthtxname = '全部') order by id go --3.将包含'全部'但不包含'第一次'\'第二次'之类的订单更新为空; use db select id,spid,name,growthtxname from dindansp where id in(select id from dindansp where growthtxname = '全部') and growthtxname<>'第一次' and growthtxname<>'第二次' and growthtxname<>'第三次' and growthtxname<>'第四次' and growthtxname<>'第五次' and growthtxname<>'第六次' and growthtxname<>'第七次' and growthtxname<>'第八次' and growthtxname<>'第九次' and growthtxname<>'第十次' order by id go --备份. select * into dindansp# from dindansp go /* 将备份回转原表; truncate table dindansp insert into dindansp select [id],[spid],[shuliang],[kind],[price],[name],[no],[status1],[status2],[status3],[status4] ,[date1],[date2],[date3],[date4],[name1],[name2],[name3],[name4],[hqdate],[hqtime],[urgent],[taketime],[no2] ,[growthtxname],[status5],[status6],[date5],[date6],[name5],[name6],[ps],[zs],[ren1],[ren2],[hqstatus],[bz] from dindansp# */ --更新这些记录,但除去入册和入底的; update dindansp set growthtxname=NULL where id in(select id from dindansp where growthtxname = '全部') and growthtxname not in('第一次','第二次','第三次','第四次','第五次','第六次','第七次','第八次','第九次','第十次') and name not in('入册','入底') go --若只有入底与入册,同样也需要更新; --4.将包含'全部'但不包含'第一次'\'第二次'之类的订单过滤,余下的就是真正的成长套系订单商品记录; use db select id,spid,name,growthtxname from dindansp where id in(select id from dindansp where growthtxname = '全部') and growthtxname in('第一次','第二次','第三次','第四次','第五次','第六次','第七次','第八次','第九次','第十次') order by id go declare @size int --查询数量; declare @ord nvarchar(50) --订单号; declare @spname nvarchar(50) --商品名; declare @gname nvarchar(50) --成长套系名称; --,@ord=id,@spname=name,@gname=growthtxname select @size=count(id) from dindansp where id in(select id from dindansp where growthtxname = '全部') and growthtxname in('第一次','第二次','第三次','第四次','第五次','第六次','第七次','第八次','第九次','第十次') while @size > 0 begin select top 1 percent @ord=id,@spname=name,@gname=growthtxname from dindansp where id in(select id from dindansp where growthtxname = '全部') and growthtxname in('第一次','第二次','第三次','第四次','第五次','第六次','第七次','第八次','第九次','第十次') if end select distinct growthtxname from dindansp where id in(select id from dindansp where growthtxname = '全部') and growthtxname in('第一次','第二次','第三次','第四次','第五次','第六次','第七次','第八次','第九次','第十次') order by growthtxname