sql >> Databasteknik >  >> RDS >> Sqlserver

Behöver T-SQL-hjälp för att konvertera rader från flera tabeller till kolumner med värden i SQL Server 2005

Min första tanke är att förbättra schemat och behöver du verkligen göra detta.

För att förenkla frågan ser det ut som att du vill ställa in kolumnnamnet baserat på en join till mstBCE. Du behöver ingen relation eftersom antalet kolumner i tblBCE är fast. Använd istället dynamisk sql för att ställa in kolumnnamnen genom att välja från mstBCE pivoterade på en rad.

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); 



  1. Distribuera PostgreSQL på en Docker Container

  2. Upptäck datatyp när du använder fetch_array med MySQLi

  3. Hur använder man MySQL-selekteringsfrågan i wordpress-användarmetadata och vänsteranslutning från annan tabell?

  4. mysql dump problem