我有一张表,其中包含将来到期的操作。我有第二张表,其中包含所有案件,包括案件的到期日。我有第三张桌子,里面有数字。
问题如下。我们的系统会自动使用未来的操作填充我们的表格。但是,对于某些客户,我们需要更改这些日期。我想为此创建一个更新查询,并通过我们的调度程序运行它。但是,我现在有点卡住了。
到目前为止,我的代码是这样的:
UPDATE proxima_gestion p
SET fecha = (SELECT To_char(d.f_ult_vencim + c.hrem01, 'yyyyMMdd')
FROM deuda d,
c4u_activity_dates c,
proxima_gestion p
WHERE d.codigo_cliente = c.codigo_cliente
AND p.n_expediente = d.n_expediente
AND d.saldo > 1000
AND p.tipo_gestion_id = 914
AND p.codigo_oficina = 33
AND d.f_ult_vencim > sysdate)
WHERE EXISTS (SELECT *
FROM proxima_gestion p,
deuda d
WHERE p.n_expediente = d.n_expediente
AND d.saldo > 1000
AND p.tipo_gestion_id = 914
AND p.codigo_oficina = 33
AND d.f_ult_vencim > sysdate)
fecha 字段是当前操作日期。不幸的是,这被保存为字符而不是日期。这就是为什么我需要将日期转换回字符。F_ult_vencim 是截止日期,hrem01 是操作应该远离截止日期的天数。(例如,这可能是 10,使新日期比到期日晚 10 天)
除此之外,当我们需要更改日期时,还有一些标准(某些债权人,某些部门,仅适用于未来的案件,从一定数量开始,仅适用于某种行动类型。)
但是,当我尝试运行此查询时,我收到错误消息 ORA-01427:单行子查询返回多于一行
如果我分别运行两个子查询,我会从两者中得到 2 个结果。我想要完成的是它连接这两个查询,并将字段更新为新值。这个值对于每种情况都会有所不同,因为每个到期日都会有所不同。
这甚至可能吗?如果是这样,怎么办?