1

チェックボックスを動的に作成するフォームがあります。ユーザーがサインインし、すべてのチェックボックスに 0 を選択します。チェックボックス配列は、テーブル 'options' から生成されます。フォームはレコードを 2 つのテーブル '調査' (個人データの 1 つのレコード) と '選択' (調査キーとオプション キー (または複数のキー)) に送信します。可能なすべてのオプションを列見出しとして表示するレポートを引き出し、そのオプションを選択した調査表からの人のリストを表示したいと考えています。したがって、私の結果は次のようになります。

    FirstAid   Triage    Firefighting  HamRadio
    Sam         Sue        Sam
    Judy        Judy       Bill
                Bob

そのため、誰も選択していなくても、すべてのオプションが結果に表示されます。

テーブルの構造は次のとおりです。

     OPTIONS
     option_id   description

     SURVEY
     survey_id   name

     SELECTED OPTIONS
     survey_id   option_id

これは実際のデータの単純化された例ですが、重要な部分が含まれています (と思います)。SQL を使用して必要な結果を得るにはどうすればよいですか?

ありがとう

4

1 に答える 1

1

免責事項: 私はここ数年 Postgres を使用していないので、このタスクを達成するには、ここに挙げた方法よりも優れた方法があるかもしれません。

オプション 1:Case When以下のリンクされたソリューションで行われたようにステートメントを使用します。
CASE WHEN を使用して postgresql でピボット テーブルを作成する正しい方法

オプション 2:以下のリンクされたソリューションで行われたように、でCrosstab利用可能な機能を使用します。http://www.postgresql.org/docs/9.1/static/tablefunc.htmlのPostgreSQL クロス集計クエリ ドキュメントtablefunc contrib


crosstab tablefunc contrib

于 2011-10-03T18:56:47.813 に答える