我有一张表,我们正在收集来自不同传感器的状态数据。出于报告目的,我需要将每个传感器(SGUID)的信息分组到一行。每个传感器都是发送阅读器(RGUID)和读取器值(VAL)。
来源表:
目标结果:
我听说过枢轴,但不知道如何在这种情况下使用它们。
答案 0 :(得分:2)
您需要使用动态T-SQL进行动态调整:
appDelegate.jsonData = outPut;
CREATE TABLE #VALS (
VALS NVARCHAR(4000)
)
INSERT INTO #VALS
SELECT DISTINCT RGUID
FROM [TABLE]
DECLARE @SQL NVARCHAR(MAX)
DECLARE @VALS NVARCHAR(4000)
SELECT @VALS = COALESCE(@VALS+', ','') + '[' + VALS + ']' FROM #VALS
SET @SQL = '
SELECT SGUID, '+@VALS+'
FROM [TABLE]
PIVOT(MAX(VAL) FOR RGUID IN ('+@VALS+')) PIV'
PRINT @SQL
EXEC (@SQL)
将显示构造的查询。从那里你可以很简单地调试任何问题。这个想法很简单,我创造了一个工作小提琴here。