日期:2014-05-18  浏览次数:20457 次

请教一个问题,如何将表记录转换为字段?急啊!!!!
如题:
      小弟现在有两个表,如下:
Info表:
infoID         infoName         infoTpye         infoClass
0001             电脑                 IBM                     台式机
0002             打印机             Star                   针式


Property表:
pID         Property         infoID         PropertyValue
01           CPU                   0001             P4\3.0
02           内存                 0001             2G
03           针头                 0002             24针


最后想要的结果:(Table3)
infoID         infoName         infoType         infoClass         CPU             内存         针头
0001             电脑                 IBM                   台式机               P4\3.0       2G             Null
0002             打印机             Star                 针式                   Null           Null         24针


请问一能实现吗?如能实现,该如何写SQL词句?(最终要的是Table3的结果集)
请大虾解释一下,万分感激!!!!!

------解决方案--------------------
--原始数据:#Info
create table #Info(infoID varchar(4),infoName varchar(6),infoTpye varchar(4),infoClass varchar(7))
insert #Info
select '0001 ', '电脑 ', 'IBM ', '台式机 ' union all
select '0002 ', '打印机 ', 'Star ', '针式 '
--原始数据:#Property
create table #Property(pID varchar(2),Property varchar(4),infoID varchar(4),PropertyValue varchar(7))
insert #Property
select '01 ', 'CPU ', '0001 ', 'P4\3.0 ' union all
select '02 ', '内存 ', '0001 ', '2G ' union all
select '03 ', '针头 ', '0002 ', '24针 '

select a.*,
CPU=(select PropertyValue from #Property where infoID=a.infoID and Property= 'CPU '),
内存=(select PropertyValue from #Property where infoID=a.infoID and Property= '内存 '),
针头=(select PropertyValue from #Property where infoID=a.infoID and Property= '针头 ')
from #Info a
/*
infoID infoName infoType infoClass CPU 内存 针头
0001 电脑 IBM 台式机 P4\3.0 2G NULL
0002 打印机 Star 针式 NULL NULL 24针
*/

--删除对象
drop table #Info,#Property