DB2添加列,插入数据和新ID

时间:2018-06-14 18:36:03

标签: db2

每个月,我想记录仪表读数,以便查看一段时间内的趋势,并且还想在我的历史记录表中添加任何新的仪表。我想根据日期每月添加一个新的列名。

我知道如何在查询中连接数据,但是在添加列时没有找到相同的方法。如果今天是06/14/2018,我希望列名为Y18M06,因为我计划每月运行一次。

这样添加列(这不起作用)

ALTER TABLE METER.HIST
  ADD COLUMN ('Y' CONCAT VARCHAR_FORMAT(CURRENT TIMESTAMP, 'YY') CONCAT 'M' CONCAT VARCHAR_FORMAT(CURRENT TIMESTAMP, 'MM'))
  DECIMAL(12,5) NOT NULL DEFAULT 0

然后,我想从另一个表中将数据插入到该新列中。在这种情况下,仪表ID列表和新列包含仪表读数。如果存在新的ID,则还需要添加它。

Source: CURRENT   Destination: HISTORY
                  Current           Desired
+----+---------+  +----+---------+  +----+---------+---------+
| id | reading |  | id | Y18M05  |  | id | Y18M05  | Y18M06  |
+----+---------+  +----+---------+  +----+---------+---------+
| 1  | 321.234 |  | 1  | 121.102 |  | 1  | 121.102 | 321.234 |
+----+---------+  +----+---------+  +----+---------+---------+
| 2  | 422.634 |  | 2  | 121.102 |  | 2  | 121.102 | 422.634 |
+----+---------+  +----+---------+  +----+---------+---------+
| 3  | 121.456 |                    | 3  |         | 121.456 |
+----+---------+                    +----+---------+---------+

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

添加列不是一个好主意。从概念点和建模点考虑每个月添加行。您的列数有限但行数不受限制,这将为您提供一个永恒的模型/表格结构。

答案 1 :(得分:0)