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



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

我知道如何在查询中连接数据,但在添加列时还没有找到做同样事情的方法。 如果今天是 2018 年 6 月 14 日,我希望列名为 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 |
+----+---------+                    +----+---------+---------+

任何帮助将不胜感激!

不要实际添加列。而是即时透视数据

https://www.ibm.com/developerworks/community/blogs/SQLTips4DB2LUW/entry/pivoting_tables56?lang=en

添加列不是一个好主意。从概念和建模角度考虑为每个月添加行。您的列有限,但行数更少,这将为您提供一个模型/表结构。

最新更新