Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Oracle使用特定值更新最后一个条目列_Sql_Oracle_Oracle Apex - Fatal编程技术网

Sql Oracle使用特定值更新最后一个条目列

Sql Oracle使用特定值更新最后一个条目列,sql,oracle,oracle-apex,Sql,Oracle,Oracle Apex,我试图在Oracle Apex平台上更新表中的一行,更具体地说,是从具有相同序列号的最后一个条目中获取当前的\u指示值,并将其作为新行中的前一个\u指示。 我的表HYDRO_计数如下: OID,SERIAL_NUMBER,PROV_NUMBER,HDRCNTS_PREVIOUS_IND,HDRCNTS_PRESENT_IND 到目前为止,我已经尝试了很多关于使用相同的序列号和PROV_号获取最后输入的值的查询,但是没有任何结果。这是我的更新查询 UPDATE HYDRO_COUNTS SET

我试图在Oracle Apex平台上更新表中的一行,更具体地说,是从具有相同序列号的最后一个条目中获取当前的\u指示值,并将其作为新行中的前一个\u指示。 我的表HYDRO_计数如下:

OID,SERIAL_NUMBER,PROV_NUMBER,HDRCNTS_PREVIOUS_IND,HDRCNTS_PRESENT_IND 
到目前为止,我已经尝试了很多关于使用相同的序列号和PROV_号获取最后输入的值的查询,但是没有任何结果。这是我的更新查询

UPDATE HYDRO_COUNTS
SET HDRCNTS_PREVIOUS_IND = (SELECT HDRCNTS_PRESENT_IND FROM HYDRO_COUNTS WHERE PROV_NUMBER = 
:P20_PROV_NUMBER AND SERIAL_NUMBER = :P20_SERIAL_NUMBER )
WHERE OID = :P20_OID ;
如果OID是始终递增的唯一列,则可以执行以下操作

UPDATE HYDRO_COUNTS
  SET HDRCNTS_PREVIOUS_IND = (SELECT HDRCNTS_PRESENT_IND
                                FROM HYDRO_COUNTS
                                WHERE PROV_NUMBER = :P20_PROV_NUMBER AND
                                      SERIAL_NUMBER = :P20_SERIAL_NUMBER AND
                                      OID = (SELECT MAX(OID)
                                               FROM HYDRO_COUNTS
                                               WHERE PROV_NUMBER = :P20_PROV_NUMBER AND
                                                     SERIAL_NUMBER = :P20_SERIAL_NUMBER AND
                                                     OID < :P20_OID)
  WHERE OID = :P20_OID

示例数据和期望的结果将是一个很大的帮助。例如,假设我在某个日期运行测试,并将某台机器的指示插入到我的表中,一段时间后,我再次在同一台机器上运行测试,因此我希望能够查看最后的指示,为了与新指示进行比较,OID确实是通过增量序列生成的!当我读到你的答案时,语法和逻辑对我来说似乎都是对的,但出于某种未知的原因,它一直对我毫无用处。你的代码是正确的,鲍勃,我在Apex中犯了一个错误,所以它不起作用。非常感谢你的帮助,伙计!