0

私はDB2を使用しており、次の表があります(表A-3列):

EmpNum  YearMonth    Value

100     201201      2
100     201207      1
100     201206      7
102     201201      8
102     201205      15
102     201207      4

…など

従業員ごとに1行、YearMonthごとに1つの列を持つ新しいテーブルBを作成したいと思います。

120列になるので、データからテーブルBの「YearMonth」列名を動的に生成できることを期待しています。

次に、値が関連するYearMonth見出しとともにセルに配置され、次のようなテーブルが作成されます。

EmpNum  201201  201202  201203  201204  201205 201206 201207 etc ….

100         2                                   7       1
102         8                            15             4

「ストアドプロシージャ」と「動的列名」を調べてみましたが、このようなものはうまくいきません。

2つの質問があります:

  1. これはDB2で可能ですか?
  2. 詳細については何を調べる必要がありますか?

期待してくれてありがとう!

ロス

4

2 に答える 2

1

探しているものはPivotと呼ばれます。残念ながら、DB2 は (Oracle とは異なり) PIVOT ステートメントを実装していません。そのため、動的な数の列を作成するクエリを作成することはできません。

Poor Man's SQL Pivotをご覧ください。質問を列として表示し、ユーザーごとの回答を 1 行に表示します。それがあなたが到達できる最も近いものです。

于 2012-12-01T16:12:36.423 に答える
0

これは、テーブルをピボットできる一般的な手順です: https://github.com/angoca/db2tools/blob/master/pivot.sql

于 2014-10-28T21:25:41.730 に答える