2016-12-05 193 views
0

我是在SQL中使用Pivot时遇到的一些麻烦。SQL Pivot“关键字'PIVOT'附近的语法不正确。”

我不断不断收到一个错误,当我尝试嵌入数据透视表,我选择查询,尽管读一些网页我似乎无法弄清楚小时。

我正在使用仪表板数据库,它将在查询中包含多个数据透视表(5),每个仪表板都有一个数据透视表。这可能吗?

我得到的错误是:

消息156,15级,状态1,38号线 附近的关键字 'PIVOT' 不正确的语法。

我的查询看起来像这样

SELECT 
    /* Query for dashboard 1 **/ 
    [ProjectUID] AS [Project UID], 
    [ + 8 Regular selects not related to the pivot ] 

    /* Query for dashboard 2 **/ 
    [...] 

     /* Query for dashboard 3 **/ 
    [...] 

     /* Dashboard WOWs */ 
    (SELECT * FROM [PB_Customer]) 
    PIVOT 
     (
      COUNT (MValue) 
      for MValue 
       in (
       [Customer], 
       [MNeeds], 
       [Bousa], 
       [backbook] 
       ) 
     ) AS pvt_table_wow 

    FROM [Table 1], [Table 2], [Table 3] 

    WHERE Table1.ProjectUID=.Table2PROJECTUID 
      AND Table2.[Ping] IS NOT NULL 
      AND Table2.[Bousa] NOT IN ('0') 
      AND Table1.ProjectUID=Table3.PUID; 

任何人可以帮助我吗?

+0

您可以在枢纽'*'使用。您需要指定列名和别名 - 看看这个 - > https://technet.microsoft.com/en-us/library/ms177410%28v=sql.105%29.aspx – Hogan

+0

刚刚从你什么表现,应该在/ * Dash板之前有一个FROM WOWs * /。具体在哪里,取决于查询。看一下这个。 https://msdn.microsoft.com/en-us/library/ms177410.aspx – DVT

+0

你不走样的子查询它上面,但也许是或不应该是一个子查询,那么很难说因为在pivot的下面有另一个FROM和WHERE子句......发布你所有的代码,它可以说明一些事情。 – scsimon

回答

0

您必须别名的子查询

变化

(SELECT * FROM [PB_Customer]) PIVOT 

(SELECT * FROM [PB_Customer]) c PIVOT 
相关问题