我正在尝试创建一个数据透视表,如下所示
SELECT AttributeDataID, [0],[1],[10],[131],[132],[133],[134],[135],[136],[137],[138],[139],[140],[141],[142],[143],[144],[145],[146],[147],[148],[149],[150],[151],[152],[153],[154],[155],[157],[158],[159],[160],[161],[162],[163],[164],[165],[166],[167],[168],[169],[170],[171],[172],[173],[174],[175],[176],[177],[178],[179],[180],[181],[182],[183],[184],[185],[186],[187],[188],[189],[190],[191],[192],[193],[194],[195],[196],[197],[198],[199],[2],[200],[202],[203],[204],[205],[206],[207],[208],[209],[211],[212],[213],[214],[215],[216],[217],[218],[219],[220],[221],[222],[223],[224],[225],[226],[227],[228],[229],[230],[231],[232],[233],[234],[235],[236],[237],[238],[239],[240],[241],[242],[243],[244],[245],[246],[247],[248],[250],[251],[252],[3],[4],[43],[44],[5],[6],[7],[8],[85],[86],[9]
FROM (SELECT t2.AttributeDataID, t1.AttributeName, t2.DataValue
FROM AttributeDefinitions As t1 JOIN AttributeDatum AS t2 ON t1.AttributeDefinitionId = t2.AttributeDefinitionRef)
p PIVOT (max(t2.DataValue) FOR t1.AttributeName IN
([0],[1],[10],[131],[132],[133],[134],[135],[136],[137],[138],[139],[140],[141],[142],[143],[144],[145],[146],[147],[148],[149],[150],[151],[152],[153],[154],[155],[157],[158],[159],[160],[161],[162],[163],[164],[165],[166],[167],[168],[169],[170],[171],[172],[173],[174],[175],[176],[177],[178],[179],[180],[181],[182],[183],[184],[185],[186],[187],[188],[189],[190],[191],[192],[193],[194],[195],[196],[197],[198],[199],[2],[200],[202],[203],[204],[205],[206],[207],[208],[209],[211],[212],[213],[214],[215],[216],[217],[218],[219],[220],[221],[222],[223],[224],[225],[226],[227],[228],[229],[230],[231],[232],[233],[234],[235],[236],[237],[238],[239],[240],[241],[242],[243],[244],[245],[246],[247],[248],[250],[251],[252],[3],[4],[43],[44],[5],[6],[7],[8],[85],[86],[9])
AS pvt ORDER BY AttributeDataID;
但是正在返回以下消息。有人可以帮忙吗?
Msg 156, Level 15, State 1, Line 6
Incorrect syntax near the keyword 'AS'.
感谢。
答案 0 :(得分:2)
您无法在PIVOT
:
SELECT AttributeDataID, [0],[1],[10],[131],[132],[133],[134],[135],[136],[137],[138],[139],[140],[141],[142],[143],[144],[145],[146],[147],[148],[149],[150],[151],[152],[153],[154],[155],[157],[158],[159],[160],[161],[162],[163],[164],[165],[166],[167],[168],[169],[170],[171],[172],[173],[174],[175],[176],[177],[178],[179],[180],[181],[182],[183],[184],[185],[186],[187],[188],[189],[190],[191],[192],[193],[194],[195],[196],[197],[198],[199],[2],[200],[202],[203],[204],[205],[206],[207],[208],[209],[211],[212],[213],[214],[215],[216],[217],[218],[219],[220],[221],[222],[223],[224],[225],[226],[227],[228],[229],[230],[231],[232],[233],[234],[235],[236],[237],[238],[239],[240],[241],[242],[243],[244],[245],[246],[247],[248],[250],[251],[252],[3],[4],[43],[44],[5],[6],[7],[8],[85],[86],[9]
FROM
(
SELECT t2.AttributeDataID, t1.AttributeName, t2.DataValue
FROM AttributeDefinitions As t1
JOIN AttributeDatum AS t2
ON t1.AttributeDefinitionId = t2.AttributeDefinitionRef
)p
PIVOT
(
max(DataValue) -- < no inner query alias here
FOR AttributeName IN -- < no inner query alias here
([0],[1],[10],[131],[132],[133],[134],[135],[136],[137],[138],[139],[140],[141],[142],[143],[144],[145],[146],[147],[148],[149],[150],[151],[152],[153],[154],[155],[157],[158],[159],[160],[161],[162],[163],[164],[165],[166],[167],[168],[169],[170],[171],[172],[173],[174],[175],[176],[177],[178],[179],[180],[181],[182],[183],[184],[185],[186],[187],[188],[189],[190],[191],[192],[193],[194],[195],[196],[197],[198],[199],[2],[200],[202],[203],[204],[205],[206],[207],[208],[209],[211],[212],[213],[214],[215],[216],[217],[218],[219],[220],[221],[222],[223],[224],[225],[226],[227],[228],[229],[230],[231],[232],[233],[234],[235],[236],[237],[238],[239],[240],[241],[242],[243],[244],[245],[246],[247],[248],[250],[251],[252],[3],[4],[43],[44],[5],[6],[7],[8],[85],[86],[9])
) AS pvt
ORDER BY AttributeDataID;
只是为了说清楚:可以为PIVOT
引用的列添加表别名前缀。只是在你的情况下,它只能是p
别名,即
…
max(p.DataValue)
FOR p.AttributeName IN
…
因为被转动的列被PIVOT
称为p
子选择的列,而不是t1
或t2
的列。