Witam,
Mam taką tabelkę:
create table #tmp
(
resultid int
,field nvarchar(max)
,num int
,fieldvalue nvarchar(max)
)
insert into #tmp
select 1,'Zdjecie', 1,'link'
union
select 1,'Zdjecie', 2,'link'
union
select 1,'Zdjecie', 3,'link'
union
select 2,'ZdjecieDokumentu', 1,'link'
union
select 3,'ZdjecieDokumentu', 1,'link'
select * from #tmp
drop table #tmp
Napisałem sobie procedurę, która przetwarza ją transponuje(pivotuje) ją do takiej formy:
resultid | Zdjecie_1 | Zdjecie_2 | Zdjecie_3 | ZdjecieDokumentu_1 | ZdjecieDokumentu_2 |
---|---|---|---|---|---|
1 | LINK | LINK | LINK | ||
2 | LINK | ||||
3 | LINK |
Generuję ją w ten sposób:
exec [dbo].[udsp_Photos] @cols ='Zdjecie, ZdjecieDokumentu'
gdzie parametrami są pola, które mają być zamieniane dynamicznie na kolumny z dopiskiem liczby porządkowej ( ta liczba może być dowolna dla każdego pola).
I to działa ok. Problem w tym, że taką wynikową tabelę chciałbym potem połączyć z inną tabelą po polu z 'resultid'. Za pomocą procedury chyba nie jestem w stanie tego zrobić. Mógłbym to wrzucić to tymczasowj tabelki, ale wcześniej musiałbym mieć zdefiniowaną strukturę chyba. Próbowałem też za pomocą nie procedur, a funkcji tabelarycznych.
Może ktoś ma lepszy pomysł?