0
我制定了以下动态SQL查询以将未知数量的行值(Maschine Names作为nvarchar)转换为列。 Pivoted Columns的行值应该是特定Maschine的停机时间和维护时间(包括int)的总和。动态SQL中的分组和聚合函数透视查询
DECLARE @columns NVARCHAR(MAX), @sql NVARCHAR(MAX);
SET @columns = N'';
SELECT @columns += N', p.' + QUOTENAME(Maschines)
FROM (SELECT Maschines FROM Rawdata AS p
GROUP BY MASCHINE) AS x;
SET @sql = N'
SELECT ' + STUFF(@columns, 1, 2, '') + '
FROM(
SELECT * from Rawdata
) AS j
PIVOT
(
SUM(maintenance) FOR Maschines IN ('
+ STUFF(REPLACE(@columns, ', p.[', ',['), 1, 1, '')
+')
) AS p;';
EXEC sp_executesql @sql;
查询returnes求和的维护时间,但一旦我尝试包括总和(如求和(维修+停机时间))超过一个专栏中,我亲近“+”的错误。
此外,该查询返回一个枢轴表,但仍具有相同的行数,不过,我需要的是为列的未知数量的分组结果,从而只包含一个行