![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Знатоки SQL! [D5, dBase, FoxPro]
TimPasha © (2002-03-21 15:04:00)Как обобщить на все договора такой запрос?
update Table1 set Table1.rayon =
(select Table2.rayon from Table2
where Table2.Dogovor=73)
where Table1.Dog=73
Donal_Graeme (2002-03-22 11:10:00) [1]ессно, в сложности... ну ка, для каждой записи делать SELECT.
я одного не пойму, почему вариант Polevi не подходит? :-)
TimPasha (2002-03-22 09:05:00) [2]> fishka - запросы работают нормально, но меня поразило, что это все же медленнее, чем сначала из одной таблицы выбрать договора и районы, а потом просто обновить в др. таблице районы.
Единым запросом времени на 3600 записей надо 10 секунд примерно,
а раздельными - 6-7. Не знаешь, почему такое может быть - в сложности составленного запроса?
Johnmen (2002-03-21 18:16:00) [3]У меня такое тоже часто бывает ... ;o)))
Fareader (2002-03-21 18:10:00) [4]Извините, у меня после напряженной работы по оптимизации вставки большого объема данных в IB кажется, что все работают с ним 8)
Johnmen (2002-03-21 18:04:00) [5]Мешает dBase и FoxPro ! :)
Fareader (2002-03-21 18:00:00) [6]>Johnmen ©
1. я имел ввиду такой запрос как у fishka с distinct.
2. Может так и не надо, но что мешает создать тригер на Before
Update и обработать занчение null
Johnmen (2002-03-21 17:48:00) [7]А вот если для Table2.rayon соответствующей записи при where Table2.Dogovor=Table1.Dog не будет найдено, то получиться Table1.rayon=null ! А надо ли так ?
fishka (2002-03-21 17:01:00) [8]
update Table1 set Table1.rayon =- если для каждого Dogovor есть 1 rayon.
(select Table2.rayon from Table2
where Table2.Dogovor=Table1.Dog)
или
update Table1 set Table1.rayon =- если записей несколько, но у всех Dogovor только 1 уникальный rayon.
(select distinct Table2.rayon from Table2
where Table2.Dogovor=Table1.Dog)
В случаях неуникальности rayon для каждого Dogovor задача не имеет смысла.
Но вообще-то чтобы написать желательно бы знать содержание таблиц...
Johnmen (2002-03-21 16:51:00) [9]>Fareader © : И что ???
Fareader (2002-03-21 16:46:00) [10]>Johnmen © какие проблемы? ставим Distinct и все
asafr (2002-03-21 16:09:00) [11]Johnmen, согласен
Johnmen (2002-03-21 16:00:00) [12]...и нарываетесь на ...Multiple rows in singleton select...
asafr (2002-03-21 15:47:00) [13]И верно
update Table1
set Table1.rayon =
(select Table2.rayon from Table2)
Polevi (2002-03-21 15:40:00) [14]UPDATE Table1 SET T1.Rayon=T2.Rayon FROM Table1 T1,Table2 T2 WHERE T2.Dogovor=T1.Dog
Val (2002-03-21 15:30:00) [15]убрать условия определения договора - where