【发布时间】:2023-04-11 00:17:02
【问题描述】:
我有 2 张桌子 Table 1 和 Table 2。我必须根据表 2 中的最小 START_DATE 为每个 EMP_ID 选择第一条记录,并使用表 1 中的 CREATION_DATE 对其进行更新。我已尝试使用以下查询。但我收到的错误是 SQL 错误:
ORA-00904:“IP”。“CREATION_DATE”:标识符 00904 无效。 00000 - “%s:无效标识符” *原因:*操作:
由于我是 Oracle 新手,因此我不确定如何完成此操作。任何建议都会很有价值。示例截图供参考。
查询:
UPDATE
(SELECT PSH.EMP_ID,PSH.START_DATE,EM.CREATION_DATE FROM EMP_MAIN EM
INNER JOIN
(SELECT EMP_ID,START_DATE FROM (SELECT EMP_ID,START_DATE,
ROW_NUMBER() OVER (PARTITION BY EMP_ID ORDER BY EMP_ID, START_DATE)
AS RN FROM EMP_STATUS) WHERE RN=1) ES
ON ES.EMP_ID = EM.PROJECT_ID)
SET EM.START_DATE = ES.CREATION_DATE;
【问题讨论】:
-
你学习过UPDATE结构吗?我想你会发现自己出了什么问题,在那之后。有用的网页techonthenet.com/oracle/update.php
标签: sql oracle join oracle11g sql-update