2012-01-23 19 views
2

私はPHPを使用して、HTML形式のレポートを生成したいと、次のMySQLのデータ:クロス集計レポート - MYSQL

VIDEOS

id | title 
01 | video1 
02 | video2 
03 | video3 
04 | video4 

陪審員

id | Name 
01 | juror1 
02 | juror2 
03 | juror3 

REVIEWS

id_video | id_juror | grade 
    01  | 01  | 5,2 
    02  | 01  | 4,5 
    03  | 01  | 2,7 
    04  | 01  | 7,0 
    01  | 02  | 3,2 
    02  | 02  | 9,6 
    03  | 02  | 4,7 
    04  | 02  | 8,3 

OUTPUTはsomでなければなりませんそのようething:

 | juror1 | juror2 | juror3 
video1 | 5,2 | 3,2 | NULL 
video2 | 4,5 | 9,6 | NULL 
video3 | 2,7 | 4,7 | NULL 
video4 | 7,0 | 8,3 | NULL 

私は、多くの異なるquerysとクロス集計のチュートリアルを試してみましたが、彼らはビデオや陪審員の数量限定のためのCASEを使用しますが、私はそれを動的にする必要があります。

答えて

1

MySQLでは、と入力すると、クエリはとなります。 http://www.databasejournal.com/features/mysql/article.php/3871556/article.htmで説明されている1つのアプローチは、すべての可能なビデオとすべての可能な陪審員を見つけて、次にSQLクエリを動的に構築するストアドプロシージャを作成することです。しかし、PHPで書いているので、PHPでストアドプロシージャよりも簡単に実行できると思います。また、SELECT videos.title, jurors.name, reviews.grade FROM reviews JOIN videos ON videos.id = reviews.id_video JOIN jurors ON jurors.id = reviews.id_jurorを直接実行して、PHPで翻訳を処理することもできます。

0

MySQL Pivot table generatorを使用すると、すぐにこのレポートを行うことができます。 列のデータソース、レポートの行と値を入力するよう求められます。列に :あなたは次のスクリーンショットのように陪審員テーブルと列を選択:

enter image description here

同様にあなたが行のデータソースとしてビデオテーブルとタイトル列を選択してください最終的に値のレビュー表と等級の列が表示され、データベースから自動的に入力されるレポートが表示されます

詳細については、次のチュートリアルを参照してください。 http://mysqlpivottable.net/Tutorial.html

関連する問題