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

… ETC

我想生成一个新的表 B,每个员工一行,每个 YearMonth 有一列。

我希望我可以从数据中动态生成表 B 'YearMonth' 列名,因为将有 120 列。

然后将该值放入具有关联 YearMonth 标题的单元格中,以提供如下表格:

EmpNum  201201  201202  201203  201204  201205 201206 201207 etc ….

100         2                                   7       1
102         8                            15             4

我试过查找“存储过程”和“动态列名”,但不能很好地处理这样的事情。

我有两个问题:

  1. 这在 DB2 中可行吗?
  2. 我应该查找什么以获取更多信息?

感谢期待!

罗斯

4

2 回答 2

1

您要查找的内容称为Pivot。不幸的是,DB2 没有实现 PIVOT 语句(与 Oracle 不同)。因此,不可能创建一个创建动态列数的查询。

看看Poor Man's SQL Pivot。将问题列为列,并将每个用户的答案列在一行中。那是你能到达的最接近的地方。

于 2012-12-01T16:12:36.423 回答
0

这是一个允许旋转表的通用过程:https ://github.com/angoca/db2tools/blob/master/pivot.sql

于 2014-10-28T21:25:41.730 回答