SQL Server 2008, у меня есть следующие схемы и строки родительской / дочерней таблицы:
create table #par( parid int primary key identity(1,1) , partext varchar(6) )
create table #chi( chiid int primary key identity(1,1) , parid int null , chirefid int null , chiinfo varchar(6) )
create table #chiref ( chirefid int primary key identity(1,1) , chisubdesc varchar(9) )
insert into #par values ( 'par1' ) , ('par2')
insert into #chiref values ( 'chi1' )
insert into #chiref values ( 'chi2' )
insert into #chiref values ( 'chi3' )
insert into #chi values ( 1 , 1 , 'aaa' )
insert into #chi values ( 1 , 2 , 'bbb' )
insert into #chi values ( 2 , 1 , 'ccc' )
insert into #chi values ( 2 , 2 , 'ddd' )
insert into #chi values ( 2 , 3 , 'eee' )
Дочерний элемент #chi содержит только пары ключ / значение, и мне нужно преобразовать текст (ключ) в столбец и поместить значение внутрь, чтобы результирующий набор имел форму, подобную приведенной ниже. Каков наилучший способ сделать это (я не могу изменить ключ / значение, он унаследован от другой системы). И в таблице #chiref есть соединение для фактических имен столбцов (что действительно убивает меня).
partext chi1 chi2 chi3
par1 aaa bbb
par2 ccc ddd eee
Спасибо.
РЕДАКТИРОВАТЬ - Важно помнить, что имена столбцов должны соответствовать «значению ключа» в таблице. Таким образом, если ключ строки EAV - "chi1", то у стержня должен быть "chi1". У меня была просто «1», которая сломалась. Итак, я понял.
Еще раз спасибо!