db2 使用行中或链接表中最早的字段记录更新时间戳字段

xxls0lw8  于 2022-11-07  发布在  DB2
关注(0)|答案(1)|浏览(192)

其中一个表如下所示:
| 表A|空值|
| - -|- -|
| 识别码(_I)|不可为空|
| 创建时间戳|不可为空|
| 编辑时间戳|可空的|
| 关闭时间戳|可空的|
| 上次修改时间戳|不可为空|
另一个是这样的:
| 表B|空值|
| - -|- -|
| B_标识|不可为空|
| 表格_a_fk|不可为空|
| 创建时间戳|不可为空|
如何将last_mod_timestamp设置为(a.创建时间戳、a.编辑时间戳、a.关闭时间戳)或B.创建时间戳(其中b.table_a_fk = www.example.com)中最早的值a.id?
数据类型均为时间戳。
提前感谢!

dsf9zpds

dsf9zpds1#

试试看:

UPDATE TABLE_A A
SET 
  last_mod_timestamp =
NULLIF
(
  MAX 
  (
    COALESCE (A.create_timestamp, '0001-01-01'::TIMESTAMP)
  , COALESCE (A.edit_timestamp, '0001-01-01'::TIMESTAMP)
  , COALESCE (A.closed_timestamp, '0001-01-01'::TIMESTAMP)
  , COALESCE (B.create_timestamp, '0001-01-01'::TIMESTAMP)
  )
, '0001-01-01'::TIMESTAMP
)
FROM
(
  SELECT table_a_fk, MAX (create_timestamp) create_timestamp
  FROM TABLE_B
  GROUP BY table_a_fk
) B
WHERE A.a_id = B.table_a_fk

相关问题