Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Как написать update ?  [new]
user.sql.ru
Member

Откуда:
Сообщений: 37
Есть выборка
select unique mls.worker_name, mls.work_id
from activity_log a, mlsok mls
where a.work_id = mls.work_id and
mls.work_type = 'FP' and
a.operator != mls.worker_name

Нужно обновить поле status в таблице mlsok для выбранных пар по указанной выборке

Так не работает:
update ( select unique mls.worker_name, mls.work_id
from activity_log a, mlsok mls
where a.work_id = mls.work_id and
mls.work_type = 'FP' and
a.operator != mls.worker_name ) set mlsok.status = 'N'

SQL Error: ORA-00904: "MLSOK"."STATUS": недопустимый идентификатор
00904. 00000 - "%s: invalid identifier"
25 апр 07, 12:12    [4067453]     Ответить | Цитировать Сообщить модератору
 Re: Как написать update ?  [new]
SQL*Plus
Member

Откуда: Россия, Москва
Сообщений: 8130
user.sql.ru
Есть выборка
  select unique mls.worker_name, mls.work_id 
 from activity_log a, mlsok mls  
 where a.work_id = mls.work_id and 
 mls.work_type = 'FP' and 
 a.operator != mls.worker_name

Нужно обновить поле status в таблице mlsok для выбранных пар по указанной выборке

Так не работает:
update ( select unique mls.worker_name, mls.work_id 
 from activity_log a, mlsok mls  
 where a.work_id = mls.work_id and 
 mls.work_type = 'FP' and 
 a.operator != mls.worker_name ) set mlsok.status = 'N'

SQL Error: ORA-00904: "MLSOK"."STATUS": недопустимый идентификатор
00904. 00000 -  "%s: invalid identifier"
Для оформления кода используйте тег SRC данного форума
25 апр 07, 12:15    [4067468]     Ответить | Цитировать Сообщить модератору
 Re: Как написать update ?  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116074
user.sql.ru
Есть выборка
select unique mls.worker_name, mls.work_id
from activity_log a, mlsok mls
where a.work_id = mls.work_id and
mls.work_type = 'FP' and
a.operator != mls.worker_name

Нужно обновить поле status в таблице mlsok для выбранных пар по указанной выборке

Так не работает:
update ( select unique mls.worker_name, mls.work_id
from activity_log a, mlsok mls
where a.work_id = mls.work_id and
mls.work_type = 'FP' and
a.operator != mls.worker_name ) set mlsok.status = 'N'

SQL Error: ORA-00904: "MLSOK"."STATUS": недопустимый идентификатор
00904. 00000 - "%s: invalid identifier"


Ну так STATUS нужно как минимум вставить в обновляемый селект -
иначе откуда он его возьмет ?
Но и это не гарантирует успеха - но попробовать можно ...
25 апр 07, 12:15    [4067472]     Ответить | Цитировать Сообщить модератору
 Re: Как написать update ?  [new]
Dancing-master
Member

Откуда:
Сообщений: 20
Попробуйте так
update mlsok t
set t.status= 'N'
where (t.worker_name,t.work_id) in (
select unique mls.worker_name,mls.work_id
from activity_log a, mlsok mls
where a.work_id = mls.work_id
and mls.work_type = 'FP'
and a.operator != mls.worker_name
)
25 апр 07, 13:07    [4068007]     Ответить | Цитировать Сообщить модератору
 Re: Как написать update ?  [new]
SQL*Plus
Member

Откуда: Россия, Москва
Сообщений: 8130
Dancing-master
Попробуйте так
update mlsok t
set t.status= 'N'
where (t.worker_name,t.work_id) in (
select  unique mls.worker_name,mls.work_id 
from activity_log a, mlsok mls 
where a.work_id = mls.work_id 
and mls.work_type = 'FP' 
and a.operator != mls.worker_name
)
Для оформления кода используйте тег SRC данного форума
25 апр 07, 13:08    [4068020]     Ответить | Цитировать Сообщить модератору
 Re: Как написать update ?  [new]
user.sql.ru
Member

Откуда:
Сообщений: 37
Спасибо, Dancing-master!
Работает скрипт
25 апр 07, 14:33    [4068783]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить