Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2007, 17:10   #1
yulia
Форумчанин
 
Аватар для yulia
 
Регистрация: 24.03.2007
Сообщений: 314
По умолчанию Опять запрос, помогите плиз

update teacher set cvalification=cvalification+1
where teacher.idteacher=children.idteache r and
children.idchild=(select idchild from konkurs where place in ('1','2','3','4','5') - оно не работает.....

Мне надо чтобы оно просматривало таблицу "конкурс", если находит значения 1,2,3,4,5 поля place, то брало соответствующее значение konkurs.idchild и по нему выбирало значение children.idteacher, а потом соответствующее поле teacher.cvalification увеличивало на 1

Вот моя БД в Интербейсе
Вложения
Тип файла: rar SHKOLA.rar (37.3 Кб, 11 просмотров)
yulia вне форума Ответить с цитированием
Старый 22.05.2007, 09:46   #2
Toxa
Форумчанин Подтвердите свой е-майл
 
Аватар для Toxa
 
Регистрация: 01.12.2006
Сообщений: 514
По умолчанию

ты попробуй сделать в цикле, сначала отрабатываеш этот запрос select idchild from konkurs where place in ('1','2','3','4','5')
while not (select idchild from konkurs where place in ('1','2','3','4','5').eof do
begin
(update teacher set cvalification=cvalification+1
where teacher.idteacher=children.idteache r and
children.idchild=(select idchild from konkurs where place in ('1','2','3','4','5').fieldbyname(' idchild'))
(select idchild from konkurs where place in ('1','2','3','4','5').next
end;
это я в общех чертах описал, у меня такое обычно работает
Пишу на Delphi за еду
Toxa вне форума Ответить с цитированием
Старый 22.05.2007, 11:15   #3
Shuraken
Форумчанин
 
Аватар для Shuraken
 
Регистрация: 16.04.2007
Сообщений: 298
По умолчанию

Конечно такой запрос не будет работать
update teacher set cvalification=cvalification+1
where teacher.idteacher=children.idteache r and
children.idchild=(select idchild from konkurs where place in ('1','2','3','4','5'))
Зачем ставить равно? В скобках запрос же явно выдает больше чем одну запись. Заменяется все таким образом

update teacher set cvalification=cvalification+1
where teacher.idteacher=children.idteache r and
children.idchild IN (select idchild from konkurs where place in ('1','2','3','4','5'))
Вот так должно работать
Не надо ничего усложнять. Все достаточно тривиально.
Shuraken вне форума Ответить с цитированием
Старый 23.05.2007, 15:54   #4
yulia
Форумчанин
 
Аватар для yulia
 
Регистрация: 24.03.2007
Сообщений: 314
По умолчанию

Спасибо, действительно работает ))) У меня именно с этим и была проблема, что в скобках много записей, а как исправить я не знала.

А теперь еще один совсем уже глупый вопрос: как теперь этот запрос подключить в Делфи? А то у меня параметрические запросы получается подключать, а без параметров, когда в него ничего передавать не надо не получается )))
yulia вне форума Ответить с цитированием
Старый 24.05.2007, 23:12   #5
yulia
Форумчанин
 
Аватар для yulia
 
Регистрация: 24.03.2007
Сообщений: 314
По умолчанию

Это я тоже сделала!!!! Осталось последнее - там где-то темка была.... )))
yulia вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите исправить запрос Yuran БД в Delphi 6 26.07.2008 14:14
Помогите написать SQL запрос Vedrus SQL, базы данных 1 22.07.2008 13:21
И опять мэйлы.. Опять... Pusher PHP 6 28.06.2008 03:08
Помогите, запрос на добавление DisaMS Microsoft Office Access 5 10.06.2008 12:39
Помогите бедному студенту(опять Delphi)... budarin Помощь студентам 1 12.05.2008 23:46