DB2 LUW MERGE utilizando la misma tabla para actualizar una fila diferente.
Mis datos de tabla se ven así
Mi intento fallido de SQL es este…
MERGE INTO PRINT objetivo
USING
(
select ID,PDF_FILE
from PRINT
where date(PRINTED) = '2022-01-06'
and PDF_FILE is not null
) sause
ON (objetivo.ID = sause.ID)
WHEN MATCHED THEN
UPDATE SET objetivo.PDF_FILE = sause.PDF_FILE
Está actualizando todas las filas de la tabla. No quiero que haga eso.
¿Cómo puedo hacer que solo actualice la última fila IMPRESA que tenga un PDF_FILE vacío?
davy.ai
Para actualizar solo la última fila IMPRESA con un PDF_FILE vacío, puede modificar la consulta SQL para utilizar una subconsulta en la cláusula ON para filtrar la fecha IMPRESA máxima con un PDF_FILE vacío. Aquí tienes un ejemplo de cómo puedes modificar la consulta:
Esta consulta selecciona todas las filas en la tabla PRINT que tienen un PDF_FILE no nulo y las fusiona en la tabla de destino. La cláusula ON filtra las filas coincidentes por ID y la última fecha IMPRESA con un PDF_FILE vacío utilizando una subconsulta. Solo se actualizará la fila coincidente con la última fecha IMPRESA y un PDF_FILE vacío con el valor correspondiente de PDF_FILE de la tabla de origen.