Форум: "Базы";
Текущий архив: 2002.04.01;
Скачать: [xml.tar.bz2];
ВнизОшибка в запросе Найти похожие ветки
← →
andyfirst (2002-03-05 14:44) [0]Делаю запрос типа:
Update T1 Set G07 = (select G07 From T2 Where ...)
Where NGO In (select T3 ...)
На что получаю сообщение об ошибке от BDE:
Single row subquery produced more than one row.
Я так понимаю, что ему не нравится то, что я пытаюсь обновить множество записей множеством записей. Но мне нужно обновить не одним значением все поле, а соответствующую запись соответствующим значением из другой записи. Как быть?
← →
deleon (2002-03-05 14:59) [1](select G07 From T2 Where ...)
этот подзапрос у тебя может возвращать более одного значения, поэтому его нужно переделать хотя-бы так:
(select Max(G07) From T2 Where ...)
← →
andyfirst (2002-03-05 15:30) [2]Но мне нужно обновить ряд записей не одинаковой информацией, например, присвоить полю значение = 3, а информацией из соответствующих записей другой таблицы, т.е., грубо говоря, множество обновить множеством.
← →
Johnmen (2002-03-05 15:37) [3]В рамках одного запроса - неразрешимо...
← →
MetallAdm (2002-03-05 16:22) [4]а как насчет курсора ??
← →
roottim (2002-03-05 16:33) [5]Update T1, T2 Set
T1.G07 = T2.GO7
Where
t1.ID=t2.ID and
NGO In (select T3 ...)
← →
Johnmen (2002-03-05 16:42) [6]>roottim : Ты бы сначала проверил работоспособность своего запроса ! Это же, извини, чушь !
← →
roottim (2002-03-05 17:01) [7]знаеш!... в оракле такая штука точно не пройдет!...
а вот в Access это работает как ни странно.. я так нивзначай подумал Foх, Access одна байда!... почему нет!!!
как видиш... чуш иногда работает :)
← →
roottim (2002-03-05 17:20) [8]Update T1 Set G07 = (select MAX(G07) From T2 Where T2.ID=T1.ID...)
Where T1.NGO In (select ...)
← →
Johnmen (2002-03-05 17:24) [9]>roottim : Если работает в Access, то это что-то ! %o)))))
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.04.01;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c