chce uzyc konstrukcji for xml, ale w wyniku chce otrzymac poza kolumna xml, takze kolumne z jakims id rekordu

przykladowa struktura
Faktury
Id int
Numer nvarchar(100)

SzczegolyFaktur
Id int
FakturaId int
Nazwa navarchar(100)
Wartosc decimal(18,2)

query
zalozmy ze w zmiennej @tab table (fid int) mam juz przefiltrowane id faktor, ktore chce pobrac
chcialbym w wyniku dostac
FakturaId, xml (np. <row id="1">nazwa</row> <row id="4">nazwa</row>)

to najlepsze co mi sie udalo wymyslic, jesli ktos ma ciekawszy, wydajniejszy sposob, to niech sie podzieli :)

select T0.fid,
(
select SF.Id as "@id", SF.Nazwa as "text()"
from @tab T
inner join SzczegolyFaktur SF on T.fid = SF.FakturaId
where T.fid = T0.fid
for xml path('row')
)
from @tab T0
group by T0.fid