過去数日間、私はこの問題の答えを見つけようとしてきました。答えは見つかりませんでしたが、検索結果にこのサイトが表示され続けているので、やってみようと思いました。ところで、投稿の素晴らしいフォーマットオプション。
私は次のようなテーブルを持っています:
user_id | form_id | question_id | data_label | data_value
1 1 1 firstName Joe
1 1 2 lastName Smith
1 1 3 phone 5554443333
2 1 1 firstName Sally
2 1 2 lastName Jones
2 1 3 phone 3334445555
私が変えたいこと:
user_id | firstName | lastName | phone
1 Joe Smith 5554443333
2 Sally Jones 3334445555
これを行う方法の例を見つけることができます。私はそれらをよく理解していませんが、それらはそこにあります。私のユニークな問題は、この単一のテーブルが、可能な数のフィールドを持つさまざまなフォームから入力されたデータを保持しているときに発生します。だから、私は次のようなテーブルを持っているかもしれません:
user_id | form_id | question_id | data_label | data_value
1 1 1 firstName Joe
1 1 2 lastName Smith
1 1 3 phone 5554443333
2 1 1 firstName Sally
2 1 2 lastName Jones
2 1 3 phone 3334445555
3 2 1 fav_color red
3 2 2 fav_animal eagle
4 2 1 fav_color blue
4 2 2 fav_animal dog
次に、form_idをパラメーターとして渡し、ユーザーごとにグループ化されたそのフォームからすべてのレコードを収集し(すべてのレコードに異なる値の同じラベルが付いている必要があります)、そのデータを次のように表示します。
... form_id = 1の場合、レポートは次のようになります。
user_id | firstName | lastName | phone
1 Joe Smith 5554443333
2 Sally Jones 3334445555
... form_id = 2の場合、レポートは次のようになります。
user_id | fav_color | fav_animal
3 red eagle
4 blue dog
私は高度なSQLプログラミングとプロシージャに不慣れであり、これを自分で行う方法を理解することはできません。各フォームのクエリに可能な正確なフィールド名を入力しなくても、任意の数/タイプのフィールドを処理できるクエリが必要です。すぐ上の最初のクエリには4つのフィールドがあり、2番目のクエリには3つのフィールドがあることに注意してください。したがって、ソリューションはこのように柔軟である必要があります。
SQLはプログラミング言語から生成することもできるので、それが役立つ場合は、そのソリューションでより多くのオプションがあります。
十分な情報がない場合はお知らせください。