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