sql >> Database teknologi >  >> RDS >> Sqlserver

brug sql valgte værdier som rækkenavne for et andet udvalg

Til SQL Server 2005+ kan du bruge dynamisk SQL og PIVOT .

DECLARE @ValuesNames NVARCHAR(4000), @Query NVARCHAR(MAX)
SET @ValuesNames = ''

SELECT @ValuesNames = @ValuesNames + QUOTENAME([name]) + ','
FROM [values] A
INNER JOIN value_type B
ON B.value_id = A.id
GROUP BY [name]
ORDER BY [name]

SET @ValuesNames = LEFT(@ValuesNames,LEN(@ValuesNames)-1)

SET @Query = '
SELECT [date], '[email protected]+'
FROM (  SELECT [date], [name], value
        FROM [values]
        LEFT JOIN value_type ON value_id = id) A
PIVOT(SUM(value) FOR [name] IN ('[email protected]+')) AS PT
'
EXEC sp_executesql @Query


  1. Sådan rettes 'Method 'get_Info' i typen 'Oracle.EntityFrameworkCore har ikke en implementering.'

  2. SQL Server 2008 Specificeret kolonne blev angivet flere gange

  3. Åbn SQL Developer fra kommandolinjen med parametre (forbindelsesstreng, bruger, adgangskode...)

  4. Hvordan ændrer du datatypen for en kolonne i SQL Server?