Проблема в том, что подзапрос в предложенном SQL-запросе возвращает все записи, которые соответствуют критериям, а затем основное обновление меняет все эти записи. Скорее всего, вы хотите обновить только одну запись, которая указана в подзапросе, а не все записи, соответствующие условию.
Попробуйте использовать конкретное условие для идентификации нужной записи в `WHERE`, чтобы точно указать, какую запись нужно изменить:
```sql
UPDATE QMET_EXT.PIECE_ATTRB
SET ATTRB_NUM_VALUE = 100
WHERE PIECE_NUM_ID = (
SELECT pa.PIECE_NUM_ID
FROM PIECE_ATTRB pa, PIECE p
WHERE pa.PIECE_NUM_ID = p.PIECE_NUM_ID
AND pa.ATTRB_CODE = 'WEIGHT_REMAIN'
AND
p.SAP _ID = '166060534534899'
);
```
Таким образом, вместо использования `ATTRB_NUM_VALUE IN`, мы обновляем запись по конкретному `PIECE_NUM_ID`, который соответствует вашим критериям.
Не могу понять почему данный запрос меняет все записи ATTRB_NUM_VALUE мне нужно изменить только одну которая указана в подзапросе
UPDATE QMET_EXT.PIECE_ATTRB
SET ATTRB_NUM_VALUE = 100
WHERE ATTRB_NUM_VALUE IN (SELECT pa.ATTRB_NUM_VALUE
FROM PIECE_ATTRB pa,PIECE p
WHERE pa.PIECE_NUM_ID = p.PIECE_NUM_ID AND ATTRB_CODE IN ('WEIGHT_REMAIN') AND p.SAP _ID IN ('166060534534899')
)