2012-10-09 78 views
0

我有以下DB:SQL Server視圖不正確的語法

My DB

我想創建視圖,一連給這個信息:

document_id Creator Manager Special Archive 

(創造者,經理,特殊,存檔)是AuthorityName值

因此,我創建了一個視圖:

SELECT  dbo.DocumentAuthorities.DocumentId, dbo.DocumentAuthorities.AuthorityId, dbo.Authorities.AuthorityName, dbo.Authorities.AuthorityLevel 
FROM   dbo.DocumentAuthorities CROSS JOIN 
          dbo.Authorities 

那麼我想這:

SELECT * FROM 
    (
    SELECT Documents.Id, AuthorityName.AuthorityId, AuthorityName.AuthorityName 
    FROM AuthorityName CROSS JOIN Documents 
    ) src 
    PIVOT 
    ( 
     max(dbo.AuthorityName.AuthorityName) 
     FOR AuthorityName 
     IN ([Creator],[Director],[Special],[Archive]) 
    ) 

,但我得到這個錯誤:

Msg 102, Level 15, State 1, Line 11 Incorrect syntax near ')'.

回答

2

試試這個:

你必須爲你的數據透視表給出一個別名

SELECT * FROM 
(
SELECT Documents.Id, AuthorityName.AuthorityId, AuthorityName.AuthorityName 
FROM AuthorityName CROSS JOIN Documents 
) src 
PIVOT 
( 
    max(dbo.AuthorityName.AuthorityName) 
    FOR AuthorityName 
    IN ([Creator],[Director],[Special],[Archive]) 
) P -- < HERE 
+0

謝謝你的工作,但現在我認爲其他觀點不是對的RECT。 – Star

相關問題