0

我正在尝试按如下方式创建数据透视表

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'.

谢谢。

4

1 回答 1

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列对于psubselect 的列而不是t1or的列是已知的t2

于 2012-11-23T18:25:16.327 回答