Mijn eerste gedachte is het verbeteren van het schema en moet je dit echt doen.
Om de vraag te vereenvoudigen, lijkt het erop dat je de kolomnaam wilt instellen op basis van een join naar mstBCE. Je hebt geen relatie nodig omdat het aantal kolommen in tblBCE vast is. Gebruik in plaats daarvan dynamische sql om de kolomnamen in te stellen die uit mstBCE naar één rij zijn gedraaid.
DECLARE @sql nvarchar(4000);
SELECT @sql = N'SELECT u.[username], u.[department],
b.[Option1TB] as [' + pvt.[1] + N'], b.[Option1],
b.[Option2TB] as [' + pvt.[2] + N'], b.[Option2],
b.[Option3TB] as [' + pvt.[3] + N'], b.[Option3]
FROM tblBCE as b
JOIN tblUser as u ON b.[UserID] = u.[userid]; '
FROM (
SELECT [tabconfigid], [tabdata]
FROM mstBCE
WHERE [tabType] = N'BCE'
) as m
PIVOT ( MIN(m.[tabdata]) FOR m.[tabconfigid] IN ([1], [2], [3]) ) as pvt;
EXEC (@sql);