Обновить несколько строк в SQL - PullRequest
1 голос
/ 27 апреля 2020

Я хочу обновить все статусы документов до 9. Как я могу это сделать?

Я сделал заявление об обновлении, но оно не сработало - я не знаю почему.

SELECT
    sl.sap_filename,
    ds.document_status
FROM
    tbl_document ds,
    tbl_sap_log sl
WHERE
    ds.number = sl.number
    AND sap_id IN (44343, 55555, 66666, 77777, 88888) 
    AND ds.DOCUMENT_STATUS = 8;

Ответы [ 2 ]

3 голосов
/ 27 апреля 2020

Вы можете использовать MERGE :

MERGE INTO tbl_document ds
USING
    (SELECT number,
            sap_id
     FROM tbl_sap_log
     WHERE sap_id IN 
       (
        44343,
        55555,
        66666,
        77777,
        88888
       )
    ) sl
ON ( ds.number = sl.number )
WHEN MATCHED THEN
UPDATE SET
    ds.document_status = 9
WHERE ds.document_status = 8;
3 голосов
/ 27 апреля 2020

Если вы хотите обновить все 9 документов на ваш выбор:

UPDATE tbl_document SET tbl_document.DOCUMENT_STATUS = 9
WHERE tbl_document.DOCUMENT_STATUS = 8
AND EXISTS (SELECT 1
            FROM tbl_sap_log  
            WHERE tbl_sap_log.number  = tbl_document.number AND sap_id IN (44343,55555,66666,77777,88888) );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...