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、副選択の列として認識されるためです。pt1t2

于 2012-11-23T18:25:16.327 に答える