Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 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)))))




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.01;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.025 c
6-277             Vlad__                2002-01-10 21:15  2002.04.01  
Сокеты


1-87              Alexandr_H            2002-03-20 18:56  2002.04.01  
Как вписать в FileStream обыкновенную строку?


1-175             AEro                  2002-03-19 16:54  2002.04.01  
Как передать значение из одной проги в другую?


7-329             Gelios                2002-01-02 08:41  2002.04.01  
Подскажите плз, В чем причина того, что при создании дистрибутива, программа совершенно не реагирует


7-323             B1ADE                 2001-12-25 00:46  2002.04.01  
КАК Включить и ВЫКЛЮЧИТЬ КЛАВУ !!!