2016-12-05 8 views
0

Я новичок в использовании Pivot в SQL и столкнулся с некоторыми проблемами.SQL Pivot "Неверный синтаксис рядом с ключевым словом" PIVOT "."

Я постоянно получаю сообщение об ошибке, когда я пытаюсь встроить сводную таблицу в свой запрос Select, и, несмотря на часы чтения нескольких веб-страниц, я не могу понять, как это понять.

Я работаю над панелью-db, которая будет содержать несколько сводных таблиц (5) в запросе, по одному для каждой информационной панели. Это возможно?

Ошибка я получаю:

Msg 156, Level 15, State 1, Line 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 board WOWs * /. В частности, где, зависит от запроса. Проверь это. https://msdn.microsoft.com/en-us/library/ms177410.aspx – DVT

+0

вы не накладываете свой подзапрос над ним, но, возможно, это или не предполагается, что он является суб-запросом, трудно сказать так как у вас есть другое предложение FROM и WHERE ниже pivot ... опубликуйте весь свой код, и он может пролить некоторый свет. – scsimon

ответ

0

Вы должны псевдоним подзапросов

изменение

(SELECT * FROM [PB_Customer]) PIVOT 

в

(SELECT * FROM [PB_Customer]) c PIVOT 
Смежные вопросы