-1
我需要做AGG_A的最大值,而不是通過轉動它。
如果我把它作爲一個維度,如當前代碼所示,它會產生意想不到的結果(隨機行數),因爲它實際上是一個度量。
目前代碼
Declare @Query_ nvarchar(MAX)
Declare @Cols_For_Pivot_ nvarchar(MAX)
--Get unique list of metrics in Var_Col for pivot.
SELECT @Cols_For_Pivot_= COALESCE(@Cols_For_Pivot_ + ',','') + QUOTENAME(COL_D)
FROM (SELECT DISTINCT COL_D FROM dbo.my_table) AS PivotTable
SET @Query_ =
N'SELECT COL_A
,COL_B
,COL_C
,AGG_A
, ' + @Cols_For_Pivot_ + '
FROM dbo.min_by_min_static_results
PIVOT(SUM(AGG_B)
FOR COL_D IN (' + @Cols_For_Pivot_ + ')) AS P'
--Execute dynamic query
EXEC sp_executesql @Query_
所需的結果
SET @Query_ =
N'SELECT COL_A
,COL_B
,COL_C
,MAX(AGG_A)
, ' + @Cols_For_Pivot_ + '
FROM dbo.min_by_min_static_results
PIVOT(SUM(AGG_B),
FOR COL_D IN (' + @Cols_For_Pivot_ + ')) AS P'
的可能的複製[SQL Server的透視表具有多個列的聚集體(http://stackoverflow.com/questions/14694691/sql-server-pivot-table-with-multiple-column-aggregates) –