Sql 如何在系统周期时态表中连接/subselect

Sql 如何在系统周期时态表中连接/subselect,sql,db2,temporal-database,Sql,Db2,Temporal Database,我有一个db2数据库和一个系统周期时态表,因此很容易通过 SELECT mtt_sometimes_updated_value FROM my_temp_table FOR SYSTEM_TIME AS OF TIMESTAMP('2018-01-31') WHERE mtt_key = '...' 这将给我一行(因为我按键过滤),但我也可以添加仅获取前1行,以防在where条件下没有键 现在我想将其用作另一个表的子选择或联接,该表的值为mtt\u key列at\u key和at\u addi

我有一个db2数据库和一个系统周期时态表,因此很容易通过

SELECT mtt_sometimes_updated_value FROM my_temp_table FOR SYSTEM_TIME AS OF TIMESTAMP('2018-01-31') WHERE mtt_key = '...'
这将给我一行(因为我按键过滤),但我也可以添加
仅获取前1行
,以防在where条件下没有键

现在我想将其用作另一个表的子选择或联接,该表的值为
mtt\u key
at\u key
at\u additional\u key
,以及
at\u date\u列
。我想要的是与
my_temp_表
结合,以获得
另一个_表中的每一行
通过
mtt_值
增强

当我尝试似乎是直觉的东西时

SELECT at_key, at_additional_key, at_date_column,
  (SELECT mtt_sometimes_updated_value 
   FROM my_temp_table FOR SYSTEM_TIME AS OF at_date_column 
   WHERE mtt_key = at_key)
FROM another_table
我得到一个错误
无效的句点规范或句点系统时间的句点子句。原因代码=03。SQLCODE=-20524
-我可以在上找到错误描述-但我不太理解-似乎不可能在系统时间使用另一个表的列

那么,我是否可以以某种方式加入这些时态表,或者如何从这两个表中获取所需信息?有什么想法吗?有什么提示吗?谢谢

我看到的唯一方法是手动处理系统周期时态表生成的时间戳的复杂方法,但我希望有一种更简单的方法。。。或者只是对我的子选择中的语法的误解

以下是一些示例数据,以澄清我拥有什么以及我想要什么:

my_temporal_表
有一个当前行,该行已于2018-01-07更新

mt_key | mtt_so_up_val | (was updated on) -------+---------------+----------------- 1 | Z | (2018-01-07) 不同的键可能有更多的数据,但是如果我筛选key=1,那么结果应该是

at_key | at_additional_key | at_date_column | mtt_so_up_val -------+-------------------+----------------+-------------- 1 | A | 2018-01-01 | X 1 | B | 2018-01-02 | Y 1 | C | 2018-01-03 | Y 1 | D | 2018-01-04 | Y 1 | E | 2018-01-05 | Y 1 | F | 2018-01-06 | Y 1 | G | 2018-01-07 | Z 1 | H | 2018-01-08 | Z 1 | I | 2018-01-09 | Z at键| at键| at键| at键|日期|列| mtt | so | up | val -------+-------------------+----------------+-------------- 1 | A | 2018-01-01 | X 1 | B | 2018-01-02 | Y 1 | C | 2018-01-03 | Y 1 | D | 2018-01-04 | Y 1 | E | 2018-01-05 | Y 1 | F | 2018-01-06 | Y 1 | G | 2018-01-07 | Z 1 | H | 2018-01-08 | Z 1 | I | 2018-01-09 | Z
所以我想用在那个特定日期有效的值来增强这个表。希望这足够清楚…

目前不支持正确使用列-在此sytax中,您必须明确指定日期或时间戳。 为了解除这一限制,我已经开了一家公司,它已经是一位未承诺的候选人,但如果你支持我的要求,请投赞成票

您仍然可以用传统的方法解决它(没有新的语法)。
我强烈建议详细了解样本数据,期望的结果会有所帮助。@GordonLinoff样本数据已添加 at_key | at_additional_key | at_date_column -------+-------------------+--------------- 1 | A | 2018-01-01 1 | B | 2018-01-02 1 | C | 2018-01-03 1 | D | 2018-01-04 1 | E | 2018-01-05 1 | F | 2018-01-06 1 | G | 2018-01-07 1 | H | 2018-01-08 1 | I | 2018-01-09 at_key | at_additional_key | at_date_column | mtt_so_up_val -------+-------------------+----------------+-------------- 1 | A | 2018-01-01 | X 1 | B | 2018-01-02 | Y 1 | C | 2018-01-03 | Y 1 | D | 2018-01-04 | Y 1 | E | 2018-01-05 | Y 1 | F | 2018-01-06 | Y 1 | G | 2018-01-07 | Z 1 | H | 2018-01-08 | Z 1 | I | 2018-01-09 | Z