SQL数据透视查询

SQL数据透视查询,sql,tsql,pivot-table,Sql,Tsql,Pivot Table,我在SQL中有以下数据: 现在,我想根据“CostCenterNumber”字段对其进行透视,以获得以下信息: 我建议您使用查询中的where和between条件我建议您使用查询中的where和between条件我建议您使用查询中的where和between条件介于查询中的条件之间尝试以下方法: DECLARE @cols as varchar(max) DECLARE @sql as varchar(max) SELECT @cols = coalesce(@cols + ',',''

我在SQL中有以下数据:

现在,我想根据“CostCenterNumber”字段对其进行透视,以获得以下信息:
我建议您使用查询中的
where
between
条件我建议您使用查询中的
where
between
条件我建议您使用查询中的
where
between
条件
介于查询中的
条件之间

尝试以下方法:

DECLARE @cols as varchar(max)
DECLARE @sql as varchar(max)

SELECT @cols  = coalesce(@cols  + ',','') + '[' + CostCenterNumber + ']' FROM #MyTable

SET @sql = 
     'SELECT Year, GLClass, Code, GLDescription, ' + @cols + '
       FROM (
             SELECT *
             FROM #MyTable
             ) as P
       PIVOT 
             (
             SUM(Total)FOR [CostCenterNumber] IN (' + @cols + ')
             )AS pvt'

EXEC(@sql)
试试这个:

DECLARE @cols as varchar(max)
DECLARE @sql as varchar(max)

SELECT @cols  = coalesce(@cols  + ',','') + '[' + CostCenterNumber + ']' FROM #MyTable

SET @sql = 
     'SELECT Year, GLClass, Code, GLDescription, ' + @cols + '
       FROM (
             SELECT *
             FROM #MyTable
             ) as P
       PIVOT 
             (
             SUM(Total)FOR [CostCenterNumber] IN (' + @cols + ')
             )AS pvt'

EXEC(@sql)
试试这个:

DECLARE @cols as varchar(max)
DECLARE @sql as varchar(max)

SELECT @cols  = coalesce(@cols  + ',','') + '[' + CostCenterNumber + ']' FROM #MyTable

SET @sql = 
     'SELECT Year, GLClass, Code, GLDescription, ' + @cols + '
       FROM (
             SELECT *
             FROM #MyTable
             ) as P
       PIVOT 
             (
             SUM(Total)FOR [CostCenterNumber] IN (' + @cols + ')
             )AS pvt'

EXEC(@sql)
试试这个:

DECLARE @cols as varchar(max)
DECLARE @sql as varchar(max)

SELECT @cols  = coalesce(@cols  + ',','') + '[' + CostCenterNumber + ']' FROM #MyTable

SET @sql = 
     'SELECT Year, GLClass, Code, GLDescription, ' + @cols + '
       FROM (
             SELECT *
             FROM #MyTable
             ) as P
       PIVOT 
             (
             SUM(Total)FOR [CostCenterNumber] IN (' + @cols + ')
             )AS pvt'

EXEC(@sql)

你至少试过什么吗?你至少试过什么吗?你至少试过什么吗?你至少试过什么吗?你至少试过什么吗???