每个月,我想记录仪表读数,以便查看一段时间内的趋势,并且还想在我的历史记录表中添加任何新的仪表。我想根据日期每月添加一个新的列名。
我知道如何在查询中连接数据,但是在添加列时没有找到相同的方法。如果今天是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 |
+----+---------+ +----+---------+---------+
非常感谢任何帮助!
答案 0 :(得分:0)
添加列不是一个好主意。从概念点和建模点考虑每个月添加行。您的列数有限但行数不受限制,这将为您提供一个永恒的模型/表格结构。
答案 1 :(得分:0)