1つの列にある日数を別の列にある特定のタイムスタンプに追加するには、DateAdd関数を使用する必要があります。
select number_id,
DATEADD('days',NUM_DAY, MY_DATETIME) as LAST_DATETIME
FROM TBL1
GROUP BY 1
_
ただし、Number_IDごとに、複数の "num_day"があるかもしれません。各number_idの場合、私は1つのレコードを1つだけ持ち、num_dayは最後に挿入された最後のnum_dayを選択する必要があります 添加さ_timestap。
これを行う方法はありますか?
First_value/ last_value ここにあなたの友達です:
SELECT number_id,
LAST_VALUE(num_day) OVER (PARTITION BY number_id ORDER BY added_timestap) AS last_num_day,
DATEADD('days',last_num_day, my_datedtime) AS last_datetime
FROM table
_
しかし、それは最後の価値がこの行の過去/未来を得るでしょう。
SELECT number_id,
LAST_VALUE(num_day) OVER (PARTITION BY number_id ORDER BY added_timestap RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS last_num_day,
DATEADD('days',last_num_day, my_datedtime) AS last_datetime
FROM table
_
テーブル "TBL1"に "Last-edit" -timestampを追加します
num_day. | last_edit. | number_id. |
---|---|---|
42 | 01.12.2021 10:11:16.0 | 01. |
13. | 01.12.2021 11:11:16.0 | 01. |
...そしてサブ選択で結果を取得します。
SELECT
number_id,
DATEADD('days',NUM_DAY, MY_DATETIME) as LAST_DATETIME
FROM TBL1
WHERE
number_id = '01'
AND last_edit in (
SELECT
max(last_edit)
FROM
TBL1
WHERE
number_id = '01'
);
_