【发布时间】:2020-01-17 10:01:05
【问题描述】:
顶部是我的数据透视结果,下面是原始表格
我想要这样的结果 资产 ID | 77 | 78 | 79 | 80 | 81 | 82 1571539 | 99 |01/01/2020 | L460 | Avast 专业版| 01/30/2020|空值 8323444 | 103|01/28/2020 |电话我| Avast 专业版|空 |空
@pAssetTypeId int
as
IF OBJECT_ID('tempdb..##TBL_TEMP') IS NOT NULL
DROP TABLE #TBL_TEMP
DECLARE @SQLQuery AS NVARCHAR(MAX)
DECLARE @PivotColumns AS NVARCHAR(MAX)
DECLARE @AssetId AS Varchar(MAX)
SELECT @PivotColumns= COALESCE(@PivotColumns + ',','') + QUOTENAME(fm.FieldMaintenanceId)
FROM dbo.FieldData f
LEFT JOIN dbo.AssetType a
ON f.AssetTypeId = a.AssetTypeId
LEFT JOIN dbo.FieldMaintenance fm
ON f.FieldMaintenanceId = fm.FieldMaintenanceId
where a.AssetTypeId = @pAssetTypeId
SET @SQLQuery =
N'SELECT AssetId,' + @PivotColumns + '
INTO #TBL_TEMP
FROM [dbo].[AssetDetails] a
PIVOT( MAX([Data])
FOR [FieldMaintenanceId] IN (' + @PivotColumns + ')) as Q'
EXEC sp_executesql @SQLQuery
Select * from #TBL_TEMP
【问题讨论】:
标签: sql-server group-by pivot