私はこの出力を得るためにSELECT
声明を行った。ここでPIVOTをテーブル/クロスタブのクエリにする方法は?
MOVIE Critic Type Average Rating
------------------------ ------------ --------------
30 Minutes or Less Critic 2.00
30 Minutes or Less User 4.20
A Lonely Place to Die Critic 10.00
A Lonely Place to Die User 8.50
Taken Critic 6.17
Taken User 7.27
Taken 2 Critic 4.00
Taken 2 User 6.29
8 rows selected
はSELECT
文は次のとおりです。
SELECT MovieTitle AS "MOVIE", TBLCRITICCLASS.CRITICCLASSDESC AS "Critic Type", AVG(TBLREVIEW.REVIEWSTAR) AS "Average Rating"
FROM TBLMOVIE
INNER JOIN TBLREVIEW ON TBLMOVIE.MOVIEID = TBLREVIEW.MOVIEID
INNER JOIN TBLCRITIC ON TBLREVIEW.CRITICID = TBLCRITIC.CRITICID
INNER JOIN TBLCRITICCLASS ON TBLCRITIC.CRITICCLASSID = TBLCRITICCLASS.CRITICCLASSID
GROUP BY MovieTitle, TBLCRITICCLASS.CRITICCLASSDESC
ORDER BY Movietitle;
私は出力を得るためにPIVOT
と、この出力には、このテーブルをオンにします批評家の評価とユーザーの評価はそれ自身のカテゴリである:
MOVIE Critic Rating User Rating
------------------------ ------------- -----------
30 Minutes or Less 2.00 4.20
A Lonely Place to Die 10.00 8.50
Taken 6.17 7.27
Taken 2 4.00 6.29
私の試み次のとおりです。
SELECT * FROM
(
SELECT MovieTitle AS "MOVIE", AVG(TBLREVIEW.REVIEWSTAR) AS "Critic Rating", AVG(TBLREVIEW.REVIEWSTAR) AS "User Rating"
FROM TBLMOVIE
INNER JOIN TBLREVIEW ON TBLMOVIE.MOVIEID = TBLREVIEW.MOVIEID
INNER JOIN TBLCRITIC ON TBLREVIEW.CRITICID = TBLCRITIC.CRITICID
INNER JOIN TBLCRITICCLASS ON TBLCRITIC.CRITICCLASSID = TBLCRITICCLASS.CRITICCLASSID
GROUP BY MovieTitle, TBLCRITICCLASS.CRITICCLASSDESC
ORDER BY Movietitle
)
PIVOT
(
AVG(TBLREVIEW.REVIEWSTAR) AS "Critic Rating"
FOR TBLREVIEW.REVIEWSTAR IN (TBLCRITICCLASS.CRITICCLASSDESC)
AVG(TBLREVIEW.REVIEWSTAR) AS "User Rating"
FOR TBLREVIEW.REVIEWSTAR IN (TBLCRITICCLASS.CRITICCLASSDESC)
)
私はエラーを取得し、それはおそらくサブクエリとスキルの私の不足のためだ、私は私が私の優先出力を取得し、どのようにそれを修正するわけではない理由を理解したいと思います。
編集:ここでは
は、関連するテーブルです:
いくつかのこと... 'PIVOT'がすでに集約関数である(GROUP BY''のようにして、 '' AVG(...)を選択)、あなたはグループに必要となりませんので、ピボットする前に平均します。 'AVG()'は、ピボットするときに実行できます。次に、サブクエリでも 'ORDER BY'を使わないでください。必要であれば、唯一の「ORDER BY」が外部クエリになければならない。最後に、 'PIVOT'構文が正しいのではありません - @xQbertは彼の答えでそれを行う方法を示しています。質問にテーブル名と列を表示する場合は、現在のクエリとPIVOTをすべて1つのステートメントに書き込むことができます。 (私はあなたの現在の試みから推測することができますが、私はしません) – mathguy
私はpastebinのリンクにテーブルを追加しました。 –