You must use delimited identifiers in the PIVOT statement, and in the SELECT list you use delimited identifiers to refer to the pivotted columns. Otherwise you're selecting numeric literals.
SELECT <non-pivoted column>,
[first pivoted column] AS <column name>,
[second pivoted column] AS <column name>,
...
[last pivoted column] AS <column name>
FROM
(<SELECT query that produces the data>)
AS <alias for the source query>
PIVOT
(
<aggregation function>(<column being aggregated>)
FOR
[<column that contains the values that will become column headers>]
IN ( [first pivoted column], [second pivoted column],
... [last pivoted column])
) AS <alias for the pivot table>
<optional ORDER BY clause>;
PIVOT
But while the docs specify [
and ]
these are just regular delimited identifiers and you can also use "
if QUOTED_IDENTIFIERS is ON.
So should be:
SELECT name, [1],[2],[3],[4],[5],[6],[7]
FROM (SELECT name,pd, din From [BLD].[dbo].[MC20$]) sq
PIVOT
( SUM(DIN)
FOR pd IN ([1],[2],[3],[4],[5],[6],[7])
) AS pt
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…