日期:2014-05-17  浏览次数:20541 次

求帮忙 求帮忙
实现tb_dataplat 与 pp_craftdata 两表数据相互转换。把tb_dataplat的data字段的值转化成pp_craftdata 的[StandardValue]的值,也就是说,把tb_dataplat一行100列,变成pp_craftdata的100行数据。
pp_craftdata的[DataPlatID]字段存储tb_dataplat表的主键[DataID] 。
tb_dataplat 是横向数据
pp_craftdata 是竖向数据
数据 存储 大神

------解决方案--------------------

declare @s varchar(max) 
set @s=''
select @s=@s+'insert into PP_CraftData(StandardValue) select '+name+' from TB_DataPlat'+CHAR(13)
from syscolumns
where id=object_id('TB_DataPlat') and isnumeric(replace(name,'Data',''))=1
order by colid
print @s

结果:
/*
insert into PP_CraftData(StandardValue) select Data1 from TB_DataPlat
insert into PP_CraftData(StandardValue) select Data2 from TB_DataPlat
insert into PP_CraftData(StandardValue) select Data3 from TB_DataPlat
insert into PP_CraftData(StandardValue) select Data4 from TB_DataPlat
insert into PP_CraftData(StandardValue) select Data5 from TB_DataPlat
insert into PP_CraftData(StandardValue) select Data6 from TB_DataPlat
insert into PP_CraftData(StandardValue) select Data7 from TB_DataPlat
insert into PP_CraftData(StandardValue) select Data8 from TB_DataPlat
insert into PP_CraftData(StandardValue) select Data9 from TB_DataPlat
insert into PP_CraftData(StandardValue) select Data10 from TB_DataPlat
insert into PP_CraftData(StandardValue) select Data11 from TB_DataPlat
insert into PP_CraftData(StandardValue) select Data12 from TB_DataPlat
insert into PP_CraftData(StandardValue) select Data13 from TB_DataPlat
insert into PP_CraftData(StandardValue) select Data14 from TB_DataPlat
insert into PP_CraftData(StandardValue) select Data15 from TB_DataPlat
insert into PP_CraftData(StandardValue) select Data16 from TB_DataPlat
insert into PP_CraftData(StandardValue) select Data17 from TB_DataPlat