0

私は次のDBを持っています:

私のデータベース

この情報を連続して表示するビューを作成したい:

document_id    Creator    Manager    Special    Archive  

(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])
      )

しかし、私はこのエラーが発生します:

メッセージ 102、レベル 15、状態 1、行 11 ')' 付近の構文が正しくありません。

4

1 に答える 1

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
于 2012-10-09T10:50:18.403 に答える