希望有人能夠提供幫助。我正在嘗試更新聲明。我有一張桌子,上面有一列:
BUS_NBR_SK, BUS_NBR, EFF_DT, ENT_TMPSTP, EXP_DT
。如何更新以前的記錄而不更新Netezza中的最大記錄
主鍵是BUS_NBR_SK
和BUS_NBR
。這裏只有一張桌子。
這是插入到一個表,我需要更新上了年紀的記錄EXP_DT
和使用max(ENT_TMSTP)
獨自離開最近的一次我只打算做一個更新與SET b.EXP_DT = current_timestamp
其中EXP_DT IS NULL
但這不會因爲最近的記錄也會被分配一個過期日期。
任何想法如何工作?
我已經嘗試過以下方法,但它是用最大生效日期更新所有內容。
UPDATE TABLE b
SET b.EXP_DT = (SELECT MAX(a.EFF_DT)
FROM TABLE A
INNER JOIN TABLE B
ON A.BUS_NBR_SK = B.BUS_NBR_SK
AND A.ENT_TMSTP = B.ENT_TMSTP
AND A.BUS_NBR = B.BUS_NBR)
WHERE EXP_DT IS NULL
and ENT_TMSTP != (select max(c.ENT_TMSTP)
from table C)
太謝謝你了!
example of the fields in the table with sample data.
編輯你的問題,並用你正在使用的數據庫標記它。 –