2013-04-05 3 views
0

Я пытаюсь удалить последние 10 символов из поля CLOB в базе данных DB2. Я могу сделать это с помощью:Как обновить подмножество значений в DB2 на основе связанных таблиц?

UPDATE report 
SET  comment = LEFT(comment, (LENGTH(comment) - 10)) 

Однако, я хочу, чтобы ограничить усечение к подмножеству строк, основанных на том, является ли отчет в текущем отчетном периоде. Я попытался это ...

UPDATE report 
SET  comment = 
     ( SELECT LEFT(comment, (LENGTH(comment) - 10)) 
      FROM report 

        INNER JOIN report_period 
        ON report.report_period_id = report_period.report_period_id 

      WHERE report_period.name = '2013 Interim Report' ) 

... но я получаю

The result of a scalar fullselect, SELECT INTO statement, or 
VALUES INTO statement is more than one row 

Что я делаю неправильно?

ответ

0

Не обращайте внимания на вопрос, помогло ли это выяснить это в моей голове. Просто пришлось переместить соединение в предложение WHERE ....

UPDATE report 
SET  comment = LEFT(comment, (LENGTH(comment) - 10)) 
WHERE report_id IN 
     ( SELECT report_id 
      FROM report 

        INNER JOIN report_period 
        ON report.report_period_id = report_period.report_period_id 

      WHERE report_period.name = '2013 Interim Report' ) 
Смежные вопросы