Я использую SQLServer2008 Express
У меня есть таблица и скрипт для преобразования строк в столбцы с ожидаемым результатом как
PARENT_ID name01 name02 name03 name04
1 ABC DEF ABC2 DEF2
2 DEF3 null null null
Однако я получаю результат как
PARENT_ID name01 name02 name03 name04
1 ABC DEF ABC2 DEF2
2 null null null null
Я знаю, что с кодом что-то не так, просто я не могу понять.Надеюсь, кто-нибудь может помочь.
CREATE TABLE #temp (
parent_id bigint NOT NULL
,dependent_id bigint not null
,date_of_birth date not null
,last_name varchar(100)
,first_name varchar(100)
,effective_start_date date
,effective_end_Date date
)
insert into #temp values (1,1,'1990-10-01','ABC',null,'1989-01-01','9999-12-31')
insert into #temp values (1,2,'1991-06-02','DEF',null,'1989-01-01','9999-12-31')
insert into #temp values (1,3,'1992-06-02','ABC2',null,'1989-01-01','9999-12-31')
insert into #temp values (1,4,'1993-06-02','DEF2',null,'1989-01-01','9999-12-31')
insert into #temp values (2,5,'2000-06-02','DEF3',null,'1989-01-01','9999-12-31')
SELECT PARENT_ID
,[1] as name01
,[2] as name02
,[3] as name03
,[4] as name04
FROM ( SELECT top(100) percent
PARENT_ID
, dependent_id
, (isnull(first_name,'')+last_name) as fullname
FROM #temp
where GETDATE() between effective_start_date and effective_end_Date
order by date_of_birth
) AS piv
PIVOT ( max(fullname)
FOR dependent_id IN ([1], [2], [3], [4])
) AS chld
Спасибо, Элмер