将来期限が来るアクションのテーブルがあります。ケースの期日を含むすべてのケースを保持する 2 番目のテーブルがあります。そして、数字を保持する 3 番目のテーブルがあります。
問題は次のとおりです。私たちのシステムは、テーブルに将来のアクションを自動的に入力します。ただし、一部のクライアントについては、これらの日付を変更する必要があります。このための更新クエリを作成し、これをスケジューラで実行したいと考えました。しかし、私は現時点で立ち往生しています。
これまでのコードは次のとおりです。
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 は、現在のアクション日付です。残念ながら、これは日付ではなく文字として保存されます。そのため、日付を char に戻す必要があります。F_ult_vencim は期日で、hrem01 は期日からアクションを配置する必要がある日数です。(たとえば、これを 10 にして、新しい日付を期日の 10 日後にすることができます)
それとは別に、日付を変更する必要がある場合には、さらにいくつかの基準があります (特定の債権者、特定の部門、将来のケースのみ、特定の金額から開始、特定のアクション タイプのみ)。
ただし、このクエリを実行しようとすると、エラー メッセージ ORA-01427: single-row subquery returns more than one row が表示されます。
両方のサブクエリを別々に実行すると、両方から 2 つの結果が得られます。私が達成しようとしているのは、これら 2 つのクエリを接続し、フィールドを新しい値に更新することです。期日はそれぞれ異なるため、この値はケースごとに異なります。
これは可能ですか?もしそうなら、どのように?